Junit:单元测试'接收'电子邮件功能

时间:2012-08-29 10:23:47

标签: java email junit

有一个Java应用程序发送由UI上的用户更新触发的电子邮件通知。我正在尝试编写JUnit测试用例,以通过查找接收消息的方式来验证电子邮件是否已成功发送。

Dumbster对我不起作用,因为它意味着在测试程序中发送电子邮件和接收邮件。

如何测试此功能?非常感谢您的帮助。

-Vadiraj。

2 个答案:

答案 0 :(得分:3)

首先,听起来像是在谈论集成测试,而不是单元测试。

一次性设置:

  • 在Gmail上手动创建邮件帐户
  • 在Gmail帐户设置中启用IMAP。

谷歌使用机器人检测很难实现这些步骤的自动化。

测试案例

  • 修改用户帐户以使用上面创建的Gmail帐户的电子邮件地址
  • 执行测试代码(针对给定用户)
  • 使用IMAP查询Gmail帐户
  • 使用IMAP删除邮件(如果存在)

有一些好的java-imap库可以让gmail审讯变得非常简单。 以下是快速搜索显示的内容:

http://harikrishnan83.wordpress.com/2009/01/24/access-gmail-with-imap-using-java-mail-api/

答案 1 :(得分:0)

dumbster的目的是存根外部电子邮件服务器。

如果这还不够,那么它会建议您尝试测试电子邮件服务器和网络基础结构的功能。

这可能只有在您使用生产电子邮件服务和网络基础架构时才有意义 - 因为在测试环境中可以对其进行不同的配置。

如果你确定你认为这是一个好主意,@ Lithium的建议方法是有道理的。

我们有一个用于测试环境的开发邮件服务器,我们将其与citadel一起用于测试人员,以便他们查看发送的电子邮件。如果我打算写这个测试,我会使用内部邮件服务器,而不是依靠谷歌。