Java FakeSMTPServerRule.mailbox()不';无法获取邮箱内容NullPointerExection
我在测试我的电子邮件服务时遇到了一个问题。当我运行测试时,由于在Java FakeSMTPServerRule.mailbox()不';无法获取邮箱内容NullPointerExection,java,spring,testing,junit,email,Java,Spring,Testing,Junit,Email,我在测试我的电子邮件服务时遇到了一个问题。当我运行测试时,由于在List receivedMessages=server.mailBox()上生成了空指针,测试失败但我的电子邮件是通过fakesmtp服务器邮箱接收的。你能告诉我怎么处理这个案子吗 测试班 @SpringBootTest @ActiveProfiles("email") @RunWith(SpringRunner.class) class EmailServiceTest { @Autowired
List receivedMessages=server.mailBox()上生成了空指针,测试失败代码>但我的电子邮件是通过fakesmtp服务器邮箱接收的。你能告诉我怎么处理这个案子吗
测试班
@SpringBootTest
@ActiveProfiles("email")
@RunWith(SpringRunner.class)
class EmailServiceTest
{
@Autowired
EmailService emailService;
@Rule
public FakeSmtpRule server = new FakeSmtpRule(ServerConfiguration.create().port(25).bind("localhost"));
@Test
void sendEmail() throws MessagingException, IOException
{
// Given
String to = "test@test.com";
String title = "Title";
String content = "Content";
// When
emailService.sendEmail(to, title, content);
// Then
List<EmailModel> receivedMessages = server.mailBox();
assertTrue(receivedMessages.size() == 1);
EmailModel receivedMessage = receivedMessages.get(0);
assertTrue(receivedMessage.getTo().equals(to));
assertTrue(receivedMessage.getSubject().equals(title));
assertTrue(receivedMessage.getEmailStr().equals(content));
}
}
@Service
public class EmailService
{
private JavaMailSender javaMailSender;
@Autowired
public EmailService(JavaMailSender javaMailSender)
{
this.javaMailSender = javaMailSender;
}
/*Set email attributes and send it via javaMailSender*/
public void sendEmail(String receiverEmail, String subject, String message)
{
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
simpleMailMessage.setTo(receiverEmail);
simpleMailMessage.setSubject(subject);
simpleMailMessage.setText(message);
javaMailSender.send(simpleMailMessage);
}
}