Для тестирования обработки ошибок в Spring Boot-приложениях можно использовать следующие подходы:
- Убедиться, что уровень MVC генерирует и обрабатывает исключения. javarush.com Для этого можно использовать аннотацию @SpringBootTest, которая создаёт контекст приложения со всеми нужными объектами для тестов. reflectoring.io www.baeldung.com
- Протестировать низкоуровневые нюансы при помощи работающего сервера. javarush.com Если нужно запустить полноценно работающий сервер, рекомендуется использовать случайные порты. javarush.com При использовании @SpringBootTest(webEnvironment=WebEnvironment.RANDOM_PORT) доступный порт выбирается случайным образом при каждом запуске теста. javarush.com Аннотацию @LocalServerPort можно использовать для того, чтобы внедрить фактически используемый порт в тест. javarush.com
- Настроить структуру ответа на ошибки. qaautomation.expert Для этого можно использовать аннотации @ExceptionHandler и @ControllerAdvice. qaautomation.expert По умолчанию ответ на ошибки в Spring Boot содержит все необходимые детали. qaautomation.expert Если нужно создать независимую от фреймворка структуру ответа, можно определить конкретную структуру ошибок. qaautomation.expert
Также для тестирования обработки исключений валидации на уровне контроллеров можно создать класс ControllerAdvice, который будет обрабатывать исключения ConstraintViolationException и MethodArgumentNotValidException. struchkov.dev Это позволит конвертировать ошибки валидации в единый формат. struchkov.dev