2017-01-13 3 views
1

-Code für E-Mail zu senden:Wie mockt man die javax.mail.Transport.send() Methode, ohne tatsächlich E-Mails zu senden?

Properties properties = new Properties(); 
    properties.setProperty("mail.smtp.host", host); 
    Session session = Session.getInstance(properties); 
    MimeMessage message = new MimeMessage(session); 
    message.setFrom(new InternetAddress(from)); 

    message.setRecipient(RecipientType.TO, new InternetAddress(to)); 
    message.setSubject(subject); 
    message.setText(content); 
    session.setDebug(true); 

    Transport.send(message); 

Ich möchte, ob ich E-Mail schicke in mock Weise richtig testen. Bitte helfen! Hier

+0

Der einzige Weg zu * kennen *, wenn Sie es richtig machen, ist es wirklich tun. Senden Sie sich während des Testens an sich selbst statt an den vorgesehenen Empfänger. Auf diese Weise können Sie auch überprüfen, ob der E-Mail-Inhalt vom E-Mail-Client korrekt angezeigt wird. – Andreas

Antwort

0

ist ein Beispiel Test mit JMockit:

@Test 
public void checkEmailIsSent(@Mocked Transport emailTransport) { 
    // Call the code under test which sends email. 

    new Verifications() {{ 
     Message msg; 
     Transport.send(msg = withCapture()); 
     // perform regular asserts on the captured msg 
    }}; 
} 
Verwandte Themen