Mockito - 验证方法是否重启次数?

时间:2015-05-06 15:27:58

标签: java unit-testing junit mockito

如果我们有这个代码:

@Test
public void test1(){
  Interface1 i1 = mock(Interface1.class)
  method1(); // This method calls i1.mockedmethod()
  verify(i1, times(1)).mockedmethod();
  method1();
  verify(i1, times(2)).mockedmethod();
}

我知道它会通过第一次验证,但我对第二次验证有疑问。验证方法是否一直计算方法被调用的次数,或者自上次验证以来它只计算它?

4 个答案:

答案 0 :(得分:14)

请注意,可以重置通过Mockito.reset(mock)调用方法的时间

答案 1 :(得分:12)

使用 void reset(T... mocks) 将重置模拟上的所有存根。如果您只需要为后续验证重置调用计数,请使用 void clearInvocations(T... mocks)

答案 2 :(得分:5)

一旦创建,mock将记住所有交互。然后,您可以有选择地验证您感兴趣的任何互动

这意味着每次调用所需的方法时,模拟都会计数,而当您调用verify时,模拟不会重置。

如果您想了解更多相关信息,请阅读此内容( 这是我找到这些信息的地方):

http://site.mockito.org/mockito/docs/current/org/mockito/Mockito.html

答案 3 :(得分:2)

Mockito会记住,所以它从第一次互动开始计算,不会重置。

另请注意,verify(i1, times(1)).mockedmethod();verify(i1).mockedmethod();相同。

有关mockito here的更多信息。