我必须测试一个调用两个void方法的方法。我只想检查是否调用了这两个void方法,但该方法必须被存根。
我该怎么做?我尝试使用Mockito doThrow
方法来实现它,但没有成功。
doThrow(new RuntimeException()).when(mockedClass).methodName();
想要但未调用:错误
我该如何解决我的问题?
您只能验证模拟内容中的调用,例如
Foo bar = Mockito.mock(Foo.class);
ClassToTest testInstance = new ClassToTest(bar);
testInstance.doStuff();
Mockito.verify(bar, times(1)).someMethod(); // will pass if someMethod of Foo class was called in scope of testInstance.doStuff()
我真的不确定您是否应该通过预期异常来检查实际的方法调用。你能提供一些代码/更多关于上下文的细节吗?
您实际上需要在Mockito上使用verifyMethod。这是一个有同样问题的人。所示的示例模拟对象,注入它,然后检查它是否被调用。
Mockito:如何验证方法是在方法中创建的对象上调用的?