【发布时间】:2018-07-11 15:42:49
【问题描述】:
当我在 MailServiceTest 类上运行 junit 测试时它工作正常,但是当我尝试执行 mvn build -B 时它失败了。
@RunWith(SpringRunner.class)
@SpringBootTest(classes = InstaticketapiApplication.class)
public class MailServiceTest {
@Autowired
private ApplicationProperties applicationProperties;
@Autowired
private MessageSource messageSource;
@Autowired
private SpringTemplateEngine springTemplateEngine;
@Spy
private JavaMailSenderImpl javaMailSender;
@Captor
private ArgumentCaptor messageCaptor;
@Autowired
private MailService mailService;
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
doNothing().when(javaMailSender).send(any(MimeMessage.class));
mailService = new MailService();
mailService.setApplicationProperties(applicationProperties);
mailService.setJavaMailSender(javaMailSender);
mailService.setMessageSource(messageSource);
mailService.setTemplateEngine(springTemplateEngine);
}
@Test
public void testSendEmail() throws Exception {
mailService.sendEmail("nemanja@test.com", "testSubject", "testCont", false, false);
verify(javaMailSender).send((MimeMessage) messageCaptor.capture());
MimeMessage message = (MimeMessage) messageCaptor.getValue();
assertThat(message.getSubject()).isEqualTo("testSubject");
assertThat(message.getContent().toString()).isEqualTo("testCont");
assertThat(message.getAllRecipients()[0].toString()).isEqualTo("nemanja@test.com");
assertThat(message.getFrom()[0].toString()).isEqualTo("InstaTicket");
assertThat(message.getContent().getClass()).isEqualTo(String.class);
assertThat(message.getDataHandler().getContentType()).isEqualTo("text/plain; charset=UTF-8");
}
完整的代码可以在这里找到https://github.com/sansajn5/ISA-InstaTicketAPI,我正在使用 yaml 作为properites。另外我使用结构作为 Jhipster 生成的项目
【问题讨论】:
-
欢迎来到 Stack Overflow!为了帮助人们回答您的问题,您需要更具体地说明失败。请edit 您的帖子包含您从minimal reproducible example 获得的确切错误(最好使用复制+粘贴以避免转录错误)。此外,您应该说明您已经进行了哪些调查以缩小问题范围。
-
@TobySpeight 我一回到家就编辑它,谢谢
-
请显示异常堆栈跟踪
标签: java maven spring-boot junit jhipster