Либо сделайте calledCnt
чем-то изменяемым (например, int[]
с одним элементом, либо AtomicInteger
), либо объявите ответ как анонимный класс, чтобы вы могли добавить переменную-член:
doAnswer(new Answer<Boolean>() {
int calledCnt = 0;
@Object public Boolean answer(InvocationOnMock invocation) {
if (calledCnt == 0) {
calledCnt += 1;
throw new InternalServerErrorException("test");
}
return false;
}
}).when(...);
(На самом деле, это не обязательно должен быть анонимный класс, это может быть любой класс. Просто использовать анонимный класс просто, потому что он сохраняет все локализованным в том месте, где он будет использоваться.)