首页 > Java > java教程 > 如何在 Mockito 中模拟 Void 方法?

如何在 Mockito 中模拟 Void 方法?

DDD
发布: 2024-12-08 03:15:11
原创
985 人浏览过

How to Mock Void Methods in Mockito?

使用 Mockito 模拟 Void 方法

如何使用 Mockito 框架模拟具有 void 返回类型的方法?这个特殊问题经常出现在对象方法不返回值而是执行操作的场景中。

克服挑战

Mockito API 提供了一系列处理这种情况的选项,包括 doThrow()、doAnswer()、doNothing() 和doReturn().

  • doThrow(Exception):调用模拟方法时抛出预定义的异常。
  • doAnswer(Answer):允许在调用模拟方法时定义自定义行为。 Answer 接口接受 IncationOnMock 对象并返回适当的值(在本例中为 Void)。

示例实现

考虑以下示例场景:

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板