2012-08-29 42 views
3

有一個Java應用程序發送由UI上的用戶更新觸發的電子郵件通知。我正在嘗試編寫JUnit測試用例,通過查找接收郵件的方式來驗證郵件是否已成功發送。Junit:單元測試'接收'電子郵件功能

Dumbster對我不起作用,因爲它是爲了在測試程序本身發送電子郵件和接收郵件。

如何測試此功能?非常感謝您的幫助。

-Vadiraj。

回答

3

首先,聽起來像是你在談論集成測試,而不是單元測試。

一次性設置:

  • 在Gmail
  • 手動創建一個郵件帳戶啓用了Gmail帳戶設置IMAP。

當谷歌使用機器人檢測時,很難自動執行這些步驟。

測試用例:

  • 修改用戶帳戶使用上面
  • 創建下測試執行代碼(對於給定的用戶)的Gmail帳戶
  • 使用IMAP的電子郵件地址來詢問Gmail帳戶
  • 使用IMAP刪除郵件(如果存在)

T這裏有一些很好的java-imap庫,它們使得gmail的審訊非常容易。 這裏是一個快速搜索發現什麼:

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

0

dumbster的目的是存根出外部電子郵件服務器。

如果這還不夠,那麼它會建議您試圖測試電子郵件服務器和網絡基礎結構的功能。

這隻有在使用生產電子郵件服務和網絡基礎架構時纔有意義 - 因爲在測試環境中可以配置不同的東西。

如果您確定您認爲這是一個好主意,@鋰的建議方法是有道理的。

我們有一個用於測試環境的開發郵件服務器,我們與citadel一起用於測試人員,以便他們查看發送了哪些電子郵件。如果我要寫這個測試,我會使用內部郵件服務器,而不是依靠谷歌。