Мой вопрос: как я могу проверить, используется ли EmailNotSendHandler, когда выбрасывается исключение EmailNotSendException? или Второй вопрос: какова правильная терминология для решения этой загадки обработки исключений?
** ЦЕЛЬ: Проверить, вызывается ли класс EmailNotSendHandler при возникновении исключения EmailNotSendException. БЕЗ НИКАКИХ КОНТРОЛЛЕРОВ **
Я новичок в программировании и делаю НЕ ЗНАЮ правильные ТЕРМИНОЛОГИИ . Я пытаюсь изучить чистое модульное тестирование и обработку исключений с помощью Spring, INTERNAL для приложения Spring Boot. Я погуглил, как проверить. Каждый результат поиска сводится к следующему: Напишите контроллеры REST, чтобы вы могли выполнять вызовы REST к контроллеру REST. Я не хочу писать контроллер REST, поскольку он выходит за рамки целей обучения. По сути, все, что содержит REST, выходит за рамки.
Аннотированный класс @ControllerAdvice.
@ControllerAdvice
@Slf4j
public class EmailNotSendHandler {
@ExceptionHandler(EmailNotSendException.class)
private void processEmailNotSendExceptions(EmailNotSendException e){
log.info("[QUATRO] Error handling? {}", e.getMessage());
}
}
Класс исключения.
public class EmailNotSendException extends RuntimeException {
public EmailNotSendException(String error) {
super("test: " + error);
}
}
Класс EmailService
@Service
public class EmailService {
private final JavaMailSender emailSenderContainer;
@Value("email@email.email")
private String receivingEmailAdress;
public void sendSimpleMessage(String emailText) {
SimpleMailMessage message = new SimpleMailMessage();
if (emailTekst.isEmpty()) {
return;
}
message.setTo(receivingEmailAdress);
message.setSubject("Error");
message.setText(emailText);
emailSenderContainer.send(message);
}
}
Модульный тест
@Test()
public void testSimpleMailMessageSendFailed() {
doThrow(new EmailNotSendException("")).when(emailServiceMocked).sendSimpleMessage("");
emailServiceMocked.sendSimpleMessage("");
}