Как протестировать отправку e-mail?

Для проверки корректности отправки электронной почты в функциональных тестах в rails я могу использовать такой код, чтобы проверить, что было отправлено письмо с указанной темой:

mail = ActionMailer::Base.deliveries.last
assert_equal "My email", mail.subject

Есть что-то подобное в популярных php-фреймворках? Как вы тестируете отправку почты, и стоит ли это делать в функциональных тестах?
  • Вопрос задан
  • 4891 просмотр
Пригласить эксперта
Ответы на вопрос 3
@VanbOK
Symfony2/PHP developer
Комментировать
Используя MailCatcher. Отправляете на тестовом окружении письма на него и с помощью его RESTful API получаете информацию об отправленном письме.

Если для Laravel, то указываете в настройках email для тестового окружения драйвер smtp и настройки для отправки на mailcatcher (mailcatcher нужно предварительно установить и запустить). В коде отправки письма ничего не меняете, а при тестировании функционала приложения, производите отправку и потом смотрите наличие письма посредством обращения к API:
<http-ip>:<http-port>/messages/...
Ответ написан
AmdY
@AmdY
PHP и прочие вебштучки
На laravel в конфиге тестов выставляется pretend или вызывается Mail::pretend(); и письма складываются в файловую систему.
Для юнит тестов, mail так же мокается без проблем.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы