使用 Mockito 模拟 Void 方法
如何使用 Mockito 框架模拟具有 void 返回类型的方法?这个特殊问题经常出现在对象方法不返回值而是执行操作的场景中。
克服挑战
Mockito API 提供了一系列处理这种情况的选项,包括 doThrow()、doAnswer()、doNothing() 和doReturn().
示例实现
考虑以下示例场景:
public class World { private String state; // Setter for state public void setState(String s) { this.state = s; } } public class WorldTest { @Test public void testingWorld() { World mockWorld = mock(World.class); // Mock the setState method using doAnswer doAnswer(new Answer<Void>() { @Override public Void answer(InvocationOnMock invocation) { Object[] args = invocation.getArguments(); System.out.println("Called with arguments: " + Arrays.toString(args)); return null; } }).when(mockWorld).setState(anyString()); // Call the mock method and observe the output mockWorld.setState("Mocked"); } }
通过使用 doAnswer 方法,我们可以为模拟 setState 指定自定义行为 方法。在上面的示例中,我们打印传递给方法的参数,提供其调用的可见性。
以上是如何在 Mockito 中模拟 Void 方法?的详细内容。更多信息请关注PHP中文网其他相关文章!