Тестирование @ControllerAdvice НЕТ ОТДЫХА - PullRequest
0 голосов
/ 16 июня 2020

Мой вопрос: как я могу проверить, используется ли 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("");
}
...