在 Spring 应用程序中集成测试期间如何处理(或阻止)电子邮件的发送?

问题描述 投票:0回答:1

也许我没有使用正确的搜索关键字,但我在集成测试中找不到有关电子邮件主题的任何内容。 “邮件”这个词在测试文档中甚至没有出现过一次。

我想知道是否可以检查 Spring 应用程序是否正在尝试发送电子邮件,更重要的是,如何模拟它或阻止它在每次运行集成时实际尝试联系 SMTP 服务器测试?

如果没有任何代码,这不会是一个太大的问题,所以这就是我所得到的:

@Test
public void testResendConfirmationEmail() throws Exception {
    mockMvc.perform(get("/resend").principal(getSpoofedPrincipal()))
            .andExpect(status().isFound())
            .andExpect(redirectedUrl("/notactive"));
}

如您所见,我使用 Spring 的 MockMVC 作为集成测试的主要入口点,在本例中是重新发送确认电子邮件。

那么我该怎么办:

  1. 阻止它发送任何电子邮件?
  2. 检查是否发送了正确的电子邮件?

非常感谢任何建议!

java spring testing spring-mvc integration-testing
1个回答
2
投票

也许你可以使用 dumbster 设置一个假电子邮件服务器。然后您可以发送它并确认它到达,而无需实际需要收件人。

© www.soinside.com 2019 - 2024. All rights reserved.