3

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

Dumbster对我不起作用,因为它是用来在测试程序本身中发送和接收邮件的。

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

-瓦迪拉杰。

4

2 回答 2

4

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

一次性设置:

  • 在 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/

于 2012-08-29T10:50:42.960 回答
0

Dumbster 的目的是删除外部电子邮件服务器。

如果这还不够,则建议您尝试测试电子邮件服务器和网络基础设施的功能。

这可能仅在您使用生产电子邮件服务和网络基础设施时才有意义——因为在测试环境中可能会以不同方式配置。

如果您确定您认为这是一个好主意,@Lithium 的建议方法很有意义。

我们有一个用于测试环境的开发邮件服务器,我们将它与citadel一起用于测试人员,以允许他们查看发送了哪些电子邮件。如果我要编写这个测试,我会使用内部邮件服务器而不是依赖谷歌。

于 2012-08-29T11:21:47.823 回答