Java Mockito能否验证被模拟对象上的方法调用总数?
Mockito的Java Mockito能否验证被模拟对象上的方法调用总数?,java,unit-testing,mockito,Java,Unit Testing,Mockito,Mockito的verify可以断言在模拟对象上与方法发生了一定数量的交互 // Given SomeService someService = mock(SomeService.class); // When someService.prepare(); someService.prepare(); // Then verify(someService, times(2)).prepare(); // test passes 有时,在单元测试中,知道模拟对象上的方法调用总数没有改变是很有
verify
可以断言在模拟对象上与方法发生了一定数量的交互
// Given
SomeService someService = mock(SomeService.class);
// When
someService.prepare();
someService.prepare();
// Then
verify(someService, times(2)).prepare(); // test passes
有时,在单元测试中,知道模拟对象上的方法调用总数没有改变是很有用的
这在添加新方法调用时提供了可见性(即测试失败)
Mockito是否提供此功能
在某些情况下,我想打电话:
verify(someService, times(2));
…而不获取未完成的验证异常:
org.mockito.exceptions.misusing.UnfinishedVerificationException:
Missing method call for verify(mock)...
Example of correct verification:
verify(mock).doSomething()
当时还没有API。您可以尝试使用
这就是
verifyNoMoreInteractions
的目的吗?编辑:似乎是这样。不完全一样,但它对我的目的有效。对我来说,你的意思不清楚。如果不关心异常,为什么要使用verify(someService,times(2))
?您想测试什么?我想断言,不会对模拟对象执行其他方法调用verifyNoMoreInteractions
有效地提供了这一点,只要我验证了我所期望的所有交互。谢谢,我这么认为。很高兴我没有错过什么明显的东西!
Mockito.mockingDetails(mock).getInvocations()