Mockito可以验证模拟对象上方法调用的总数吗?

时间:2015-06-08 12:53:57

标签: 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()

1 个答案:

答案 0 :(得分:5)

当时没有API。您可以尝试使用MockingDetails.getInvocations

编写自己的验证码
Mockito.mockingDetails(mock).getInvocations()