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

Your email address will not be published.


*