Я хочу протестировать один метод, который вызывает другой метод несколько раз.
Class Sample{
OtherClass otherClass;
public OutputPoJo callABCMultipleTImes(){
OutputPoJo outputPojo;
try{
outputPojo = otherClass.callABC();
} catch(RuntimeException ex){
//Retrying call one more time
outputPojo = otherClass.callABC();
}
return outputPojo;
}
}
Я хочу проверить этот метод. Для этого я делаю что-то вроде этого, и это отлично работает для меня для разных комбинаций.
public void testCallABCMultipleTImes(){
when(otherClass.callABC())
.thenThrow(new RuntimeException("First try failed.")).
.thenReturn(new OutputPOJO());
mockedSampleClass.callABCMultipleTImes();
Mockito.verify(otherClass,Mockito.times(2)).callABC();
}
По сути, я проверяю, что я получил исключение в первый раз и во второй раз, я получил успешный ответ. Я проверяю это, проверяя, что метод вызывается дважды.
Это правильный способ проверки такого сценария или есть какой-то другой способ?
Спасибо!