2013-08-22 58 views
0

我有一個使用servlet和JSP頁面構建的Java Web應用程序。我已經使用JWebUnit編寫了一些集成測試(http://jwebunit.sourceforge.net)。使用JWebUnit測試郵件聯繫表而不發送郵件

我有一個測試方法是這樣的:

@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", "[email protected]"); 
setTextField("form_wachtwoord", "Joel1234!"); 
} 

然而,當我在測試方法提交表單的電子郵件發送出去。有沒有辦法像測試Rails一樣測試這種電子郵件功能?在Rails中,當您處於測試環境中時,該應用程序不會發送真正的電子郵件。相反,它會將這些電子郵件添加到某種測試隊列中,您可以檢查該電子郵件是否已發送。

我可以在Java Web應用程序中使用類似的東西嗎?

回答

0

JSP/Servlet中沒有內容可以讓它自動發生; Rails是一個框架,而JSP/Servlets是較低級別的。但是你的應用程序大概有一些特定於環境的屬性存儲在文本文件或數據庫中;如果你創建了一個像suppressMailSend這樣的布爾值,然後使用這個布爾值來控制你的郵件發送代碼是否真的發送了郵件(如果不是,那麼可能會將郵件記錄到你的應用日誌中),那麼這樣做。 (有用的事情還可以是有條件地將這些郵件發送給他們預期的收件人,但是發送給自己 - 將「真實的」收件人地址添加到主題行中,以便知道郵件將發送給誰以供誰使用如果你想看看發送的郵件是什麼樣的話)。

0

Post Hoc是一個Java/JSP應用程序,它像SMTP服務器一樣工作,它將接收來自應用程序的電子郵件,並將它們與用戶存儲在一個列表中界面,讓您檢查電子郵件。它易於安裝,開銷非常低。免費提供,開源。

Git的樞紐:Git Hub Site

此外,見博客文章:PostHoc: Testing Apps that Send Email

相關問題