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.

Kod źródłowy do wglądu na GitHub!

Jeśli chcesz uzyskać dostęp do GitHuba na 30 dni i pobrać kod źródłowy wyślij smsa o treśći DOSTEP.EDUSESSION na numer 7943. Tyle wiedzy a koszt to tylko 9 PLN (11.07 PLN z VAT).





Leave a comment

Your email address will not be published.


*