如果我们有这个代码:
@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();
}
我知道它会通过第一个验证,但我怀疑第二个。verify方法是计算该方法被调用的所有次数,还是只计算自上次verify以来调用的次数?
4条答案
按热度按时间tvz2xvvm1#
Mockito会记住,所以它从第一次交互开始计数,不会重置。
另外,请注意,
verify(i1, times(1)).mockedmethod();
与verify(i1).mockedmethod();
相同。关于mockito here的更多信息。
czfnxgou2#
使用void reset(T...模拟)将重置模拟上的所有存根。如果您只需要为后续验证重置调用计数,请使用void clearInvocations(T...模拟)。
2j4z5cfb3#
请注意,可以使用
Mockito.reset(mock)
重置调用方法的次数更新:正如下面t7tran所建议的,使用
clearInvocations(T... mocks)
将只重置调用的数量。tyu7yeag4#
这意味着每次调用所需的方法时,mock都会计数,并且在调用
verify
时不会重置。如果你想了解更多信息,请阅读以下内容(这是我找到这些信息的地方):
http://site.mockito.org/mockito/docs/current/org/mockito/Mockito.html