0

我有一个使用 servlet 和 JSP 页面构建的 Java Web 应用程序。我已经使用 JWebUnit ( http://jwebunit.sourceforge.net ) 编写了一些集成测试。

我有一个这样的测试方法:

@Test
public void testContact() {
beginAt("contact");
assertResponseCode(200);

assertFormPresent("form_contact");
assertElementPresent("page_contact_form_uitleg");
assertTextInElement("page_contact_form_uitleg", getMessage("pagina.contact.uitleg"));

assertFormElementPresent("form_naam");
assertFormElementPresent("form_email");
assertFormElementPresent("form_boodschap");

setTextField("form_email", "joel@craenhals.eu");
setTextField("form_wachtwoord", "Joel1234!");
}

但是,当我在测试方法中提交表单时,会发送电子邮件。有没有办法像 Rails 一样测试这个电子邮件功能?在 Rails 中,当您在测试环境中时,应用程序不会发送真正的电子邮件。相反,它将这些电子邮件添加到某种测试队列中,您可以在其中检查电子邮件是否已发送。

我可以在 Java Web 应用程序中使用类似的东西吗?

4

2 回答 2

0

JSP/Servlets 中没有任何东西可以让这种情况自动发生;Rails 是一个框架,而 JSP/Servlets 是较低级别的。但是您的应用程序可能有一些特定于环境的属性存储在文本文件或数据库中;如果您创建一个类似的布尔值suppressMailSend,然后使用此布尔值来控制您的邮件发送代码是否实际发送邮件(如果不是,则可能将消息记录到您的应用程序日志中),那就可以了。(也可以有条件地将这些邮件发送给他们的预期收件人,而不是发送给您自己 - 将“真实”收件人地址附加到主题行,以便您知道邮件将在生产中发送给谁 - 有帮助如果您想查看已发送邮件的外观。)

于 2013-08-23T06:44:57.653 回答
0

Post Hoc 是一个 Java/JSP 应用程序,它的作用类似于 SMTP 服务器,它将接收来自您的应用程序的电子邮件,并将它们存储在一个带有允许您检查电子邮件的用户界面的列表中。它易于安装且开销非常低。免费提供,开源。

Git 中心:Git Hub 站点

另请参阅博客文章:PostHoc:测试发送电子邮件的应用程序

于 2017-07-24T21:58:30.017 回答