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();
}

我知道它将通过第一个验证,但是我对第二个验证感到怀疑。验证方法是否一直在计数该方法已被调用的所有时间,还是仅自上次验证以来就对其进行计数?

使用void reset(t ...模拟)将重置模拟上的所有固执。如果您只需要重置调用计数以进行后续验证,请使用void clearinvocations(t ...模拟)。

请注意,可以使用Mockito.reset(mock)

来重置该方法

更新:如T7Tran所建议的,使用clearInvocations(T... mocks)仅重置Incocations

一旦创建,模拟就会记住所有交互。然后,您可以选择性地验证对感兴趣的任何交互。

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

如果您想要有关此信息的更多信息,请阅读此信息(这是我找到这些信息的地方):

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

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

有关Mockito的更多信息。

最新更新