如何模拟javax.mail.Transport.send()方法而不实际发送电子邮件?
发送电子邮件的代码:如何模拟javax.mail.Transport.send()方法而不实际发送电子邮件?,java,email,mocking,Java,Email,Mocking,发送电子邮件的代码: Properties properties = new Properties(); properties.setProperty("mail.smtp.host", host); Session session = Session.getInstance(properties); MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAd
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);
我想测试我是否以模拟方式正确发送电子邮件。
请帮忙 下面是一个使用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
}};
}
下面是一个使用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
}};
}
要知道你是否做对了,唯一的办法就是实际做。在测试时发送给自己,而不是预期的收件人。通过这种方式,您还可以检查邮件客户端是否可以正确查看电子邮件内容。要知道您的操作是否正确,唯一的方法就是实际操作。在测试时发送给自己,而不是预期的收件人。这样,您还可以检查邮件客户端是否可以正确查看电子邮件内容。