Я хочу сбросить только количество методов в шпионах.Как частично восстановить макет/шпион?
Возможно ли это?
Я знаю, что существует методу
Mockito.reset
Но он сбрасывает издеваться полностью.
Я хочу сбросить только количество методов в шпионах.Как частично восстановить макет/шпион?
Возможно ли это?
Я знаю, что существует методу
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();
Можете ли вы привести пример * Другой способ * – gstackoverflow
ответ обновляется в соответствии с просьбой –
@gstackoverflow следует позаботиться о том при редактировании ответа. Действительно ли была необходимость в «финале»? Получает ли это ответ лучше каким-то значительным образом? Или вы просто отредактировали его только для того, чтобы что-то отредактировать? Возможно ли, что конечным результатом будет создание нового списка вместо очистки существующего списка? –