Задать вопрос

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

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

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

Есть что-то подобное в популярных php-фреймворках? Как вы тестируете отправку почты, и стоит ли это делать в функциональных тестах?
  • Вопрос задан
  • 4920 просмотров
Подписаться 4 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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 так же мокается без проблем.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽