如何部分重置mock / spy?

时间:2015-01-30 11:42:17

标签: unit-testing junit mocking mockito powermock

我想在间谍中仅重置方法计数。

有可能吗?

我知道存在方法

Mockito.reset

但它完全重置了模拟。

1 个答案:

答案 0 :(得分:0)

通常,这样做的方法是在@Before方法中设置mock / spy,这样对于每个测试,行为都是相同的,但计数总是被重置。如果您需要重置计数中期测试,我建议您创建一种方法来设置您需要的行为。调用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();
相关问题