Немного репоста, но определенное замечание о недостаточной репутации означает, что я не могу комментировать ни одну из дублирующих тем! (кашель)
Я пытаюсь проверить блок catch для try-catch, используя Mockito; Можно ли сделать ложный выброс исключения, которое обрабатывается тестируемым методом? Я не могу использовать doThrow () ... when () ... или @Test (ожидается = Foo.class), потому что обработано исключение. Я хочу проверить, что метод правильно обрабатывает исключения.
@Controller
public class StockExchangeController {
public ModelAndView placeOrder(ModelAndView mav, MyObj myObj) {
try {
validator.validate(myObj); // Throws CustomException if validation fails
mav.setViewName("successPage");
} catch (CustomException ex) {
mav.setViewName("failPage");
}
return mav;
}
}
Я бы хотел иметь возможность заглушить поведение моего "validatorObject", например
doThrow(new CustomException()).when(validatorMock).validate();
Есть ли способ сделать это?
ответ здесь (тестировать логику блока catch с Junit и mockito) не работает (я считаю), потому что исключение обрабатывается до того, как оно достигнет уровня тестирования.
Советы и мысли высоко ценится!