我只想重置间谍中的方法计数。
可能吗?
我知道存在方法
Mockito.reset
但它完全重置了模拟。
通常,这样做的方法是在@Before
方法中设置模拟/间谍,以便对于每个测试,行为相同,但计数始终重置。如果您需要在测试中重置计数,我建议您创建一种方法来设置所需的行为。调用reset
然后调用行为设置方法。
执行此操作的另一种方法可能是使用Answer
来捕获方法调用,然后重置Answer
。
private List<InvocationOnMock> invocationList = new ArrayList<>();
when(spy.someMethod(anyString())).thenAnswer(new Answer() {
Object answer(InvocationOnMock invocation) {
invocationList.add(invocation);
return null; // Or whatever you need to return
}
});
// instead of reset
invocationList.clear();