При использовании Mockito вы можете окурок на вызов метода, как:Как окурок последовательных вызовов с обратными вызовами в Mockito
when(mock.someMethod("some arg"))
.thenThrow(new RuntimeException())
.thenReturn("foo");
Но когда ваш метод возвращает void
вам нужно окурок с этим форматом:
doAnswer(new Answer() {..).when(mock). someMethod("some arg");
Представьте меня Worker.class
как этот
class Worker {
void doWork(Callback callback) {
boolean success= ...;
if(success){
callback.onSuccess();
}else {
callback.onFail();
}
}
}
Вы можете окурок с Падения с этим кодом:
doAnswer(new Answer() {
@Override
public Object answer(InvocationOnMock invocation) throws Throwable {
Callback callback= invocation.getArguments()[0];
callback.onSuccess();
return null;
}
}).when(mockWorker).doWork(any(Callback.class));
Теперь представьте себе, я хочу незавершенное, что три последовательных вызовов к рабочим позвонить onFail, onSuccess, onFail
, как я могу это сделать? Нужно ли мне переконфигурировать макет внутри каждого звонка answer(InvocationOnMock invocation)
?