我的问题不大。我创建了 MailService 来发送邮件。当我运行程序时,它有效。我拥有的所有可通过电子邮件发送的属性resources/application.properties
。我在用着spring-boot-starter-mail
.
@Service
public class MailService {
private JavaMailSender javaMailSender;
@Autowired
public MailService(JavaMailSender javaMailSender) {
this.javaMailSender = javaMailSender;
}
public void sendMail(String subject, String messageContent, String recipient)
throws MessagingException {
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage);
messageHelper.setTo(recipient);
messageHelper.setSubject(subject);
messageHelper.setText(messageContent);
javaMailSender.send(mimeMessage);
}
}
但我不知道如何为其创建测试。我尝试过类似的东西,我在哪里使用org.jvnet.mock-javamail:mock-javamail
,但它不起作用:
public class MailServiceTest {
private MailService mailService;
@Mock
private JavaMailSender javaMailSender;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mailService = new MailService(javaMailSender);
Mailbox.clearAll();
}
@Test
public void sendMailTest() throws MessagingException, IOException {
String subject = "Some subject";
String body = "Some contents.";
String recipient = "[email protected] /cdn-cgi/l/email-protection";
mailService.sendMail(subject, body, recipient);
List<Message> inbox = Mailbox.get(recipient);
assertTrue(inbox.size() == 1);
assertEquals(subject, inbox.get(0).getSubject());
assertEquals(body, inbox.get(0).getContent());
}
}
你可以测试一下如何MimeMessage
成立于:
public class EmailServiceTest {
private EmailServiceImpl emailServiceImpl;
private JavaMailSender javaMailSender;
private MimeMessage mimeMessage;
@Before
public void before() {
mimeMessage = new MimeMessage((Session)null);
javaMailSender = mock(JavaMailSender.class);
when(javaMailSender.createMimeMessage()).thenReturn(mimeMessage);
emailServiceImpl = new EmailService(javaMailSender);
}
@Test
public void emailTest() {
String recipient = "[email protected] /cdn-cgi/l/email-protection"
EmailRequest request = new EmailRequest();
request.setRecipient(recipient);
emailServiceImpl.send(request);
assertEquals(recipient, mimeMessage.getRecipients(RecipientType.TO)[0].toString());
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)