Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Mockito能否验证被模拟对象上的方法调用总数?_Java_Unit Testing_Mockito - Fatal编程技术网

Java 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 有时,在单元测试中,知道模拟对象上的方法调用总数没有改变是很有

Mockito的
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()