2017-01-13 7 views
1

код для отправки электронной почты:Как насмехать метод javax.mail.Transport.send() без фактической отправки электронной почты?

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); 

Я хотел бы проверить ли я правильно посылать электронную почту в ложном пути. Пожалуйста, помогите!

+0

Единственный способ * знать * если вы делаете это правильно, это на самом деле это сделать. Посылайте себя, а не предполагаемому получателю, пока вы тестируете. Таким образом, вы также можете проверить, правильно ли просматривается почтовый контент почтовым клиентом. – Andreas

ответ

0

Вот пример теста, используя 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 
    }}; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^