2010-12-15 59 views
1

我有一個PHPUnit的測試執行以下操作:PHPUnit的電子郵件測試

  • 填寫使用Selenium RC網頁上的表單
  • (該應用程序將電子郵件發送到Gmail帳戶)
  • 連接到Gmail帳戶與imap_open()
  • 驗證某些字符串在電子郵件中存在

我的問題是我的測試失敗,因爲我沒有等待電子郵件發送。在這個情況下,你會怎麼做?

+0

你的速度測試,或用於準確性? – DampeS8N 2010-12-15 17:53:57

+0

測試的準確性 – nnyby 2010-12-15 17:57:32

+1

我不確定測試電子郵件是否應該在這種情況下進行單元測試。單元測試應該驗證應用程序中的邏輯,而不是第三方服務的可靠性。 – rojoca 2010-12-15 18:00:06

回答

4

請勿使用外部郵件服務器。設置假郵件。 Python版本更易於使用。 http://fakemail.sourceforge.net/

我已經使用了fakemail一段時間,它使我的php simpletest測試運行速度非常快(沒有外部延遲),並且它們都是100%可重複的。

如果我想實際測試腳本的郵件發送部分,我保留一組不同的測試。在我看來,「檢查字符串是否存在」和「檢查發送給Gmail的電子郵件」是兩個不同的失敗點,應該分成不同的測試。

+0

http://fakemail.sourceforge.net指向http://www.lastcraft.com/fakemail.php,在發佈時,它已經從互聯網上消失。從不畏懼;你仍然可以在這裏找到源代碼的副本:http://sourceforge.net/projects/fakemail/files/fakemail-python/ – thisgeek 2012-06-11 13:33:21

+0

在Github上:https://github.com/matschaffer/fakemailo – Susan 2013-02-05 10:35:34