Spring Boot – testy wiadomości e-mail
Spring Boot – testy wiadomości e-mail
Testy wiadomości e-mail zrealizować można z użyciem biblioteki GreenMail. Jeśli nie chcemy stawiać własnego serwera SMTP to jest to idealny sposób na przetestowanie swojego oprogramowania w trybie developerskim. Wpis ten jest kontynuacją wpisu https://javaleader.pl/2019/08/27/konfiguracja-klienta-pocztowego-z-uzyciem-spring-boota. Zachęcam do zapoznania się z nim zanim zaczniesz czytać ten wpis 😉 Zaczynamy! Do pliku pom.xml dodajemy wpis:
<dependency> <groupId>com.icegreen</groupId> <artifactId>greenmail-spring</artifactId> <version>1.5.6</version> <scope>test</scope> </dependency>
Tworzymy plik application-email.properties:
z zawartością:
spring.mail.host = localhost spring.mail.port = 25
Następnie tworzymy test jednostkowy – EmailSenderTest:
@SpringBootTest @ActiveProfiles("e-mail") @RunWith(SpringRunner.class) public class EmailSenderTest { @Rule public GreenMailRule server = new GreenMailRule(new ServerSetup(25, "localhost", "smtp")); @Autowired MailService mailService; @Test public void shouldSendEmail() throws Exception { server.setUser("kontakt@javaleader.pl", "javaleader.pl", "password"); String to = "kontakt@javaleader.pl"; String subject = "javaleader.pl"; String content = "content email"; mailService.sendMail(to, subject, content, false); MimeMessage[] receivedMessages = server.getReceivedMessages(); MimeMessage receivedMessage = receivedMessages[0]; assertThat(receivedMessages.length).isEqualTo(1); assertThat(receivedMessage.getAllRecipients()[0].toString()).isEqualTo(to); } }
Test aktywuje profil e-mail oraz sprawdza czy wysłana wiadomość została dostarczona na serwer SMTP. Weryfikowana jest sama obecność wiadomości oraz jej odbiorca.
Leave a comment