PHPUnit тестирование электронной почты - PullRequest
2 голосов
/ 15 декабря 2010

У меня есть тест PHPUnit, который выполняет следующее:

  • заполняет форму на веб-странице, используя Selenium RC
  • (приложение отправляет электронное письмо научетная запись gmail)
  • подключитесь к учетной записи gmail с помощью imap_open ()
  • убедитесь, что в письме есть определенные строки

Моя проблема в том, что мой тестслучайно происходит сбой, потому что я не жду, когда письмо будет отправлено.Что бы вы сделали в этой ситуации?

Ответы [ 2 ]

5 голосов
/ 15 декабря 2010

Не используйте внешний почтовый сервер. Настройте фальшивую почту. Версия Python проще в использовании. http://fakemail.sourceforge.net/

Я довольно долго использовал fakemail, и это делает мои самые простые php-тесты очень быстрыми (без внешней задержки), и они на 100% повторяются.

Я сохраняю другой набор тестов, если я действительно хочу проверить часть моего скрипта, отправляющую почту. На мой взгляд, «проверка наличия строк» ​​и «проверка того, что электронное письмо было отправлено в gmail» - это две разные точки отказа, и их следует разделить на разные тесты.

1 голос
/ 05 февраля 2013

Вы также можете «проверить» электронную почту, проанализировав RSS-канал тестовой учетной записи Gmail:

http://www.internoetics.com/2012/08/08/create-a-gmail-rss-feed/

...