java - 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(someService, times(2));

..没有得到 UnfinishedVerificationException:

org.mockito.exceptions.misusing.UnfinishedVerificationException: 
Missing method call for verify(mock)...

Example of correct verification:
  verify(mock).doSomething()

最佳答案

当时没有相应的 API。您可以尝试使用 MockingDetails.getInvocations 编写您自己的验证程序代码

Mockito.mockingDetails(mock).getInvocations()

关于java - Mockito 可以验证模拟对象上的方法调用总数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30709714/

相关文章:

java - 输入5个数字,然后显示您输入的所有正数和负数

Java 9 + Maven : What happens if two dependencies export the same module?

用于压力测试仪的每秒 Java 编程数据包

Java 正则表达式与字符串替换

java - 测试在 IDE 中通过,但在 TeamCity 中失败

java - 测试时模拟@Service 连接到数据库

reactjs - 在 React 中测试嵌套组件

javascript - 使用 RhinoMock 或 Moq 测试方法的内部结构

silverlight - 使用 MVVM Light 和 DispatcherHelper 进行单元测试

java - 是否可以使用 Mockito 进行严格的模拟?