Подтвердить что ты не робот

Как проверить отправку электронной почты с помощью Rspec?

Каковы наилучшие методы и инструменты для проверки отправки по электронной почте с помощью rspec с Rails?

Например, как проверить, отправлено ли электронное письмо или что я должен проверить, чтобы иметь эффективное тестирование и приемлемый охват.

Если вам нужен пример, как мне пойти и проверить это:

class UserMailer < ActionMailer::Base

 def jobdesc_has_been_reviewed(user, title)
    @body[:title]  = title
    @body[:jobdesc]  = jobdesc
    @body[:url]  = "http://" + user.account.subdomain + "." + Constants::SITE_URL + "/jobdescs/#{jobdesc.id}"
 end

end
4b9b3361

Ответ 2

Что вы хотите точно проверить?

Хотите проверить, действительно ли письмо действительно отправлено?

Я не рекомендую его, так как это замедлит ваш тест, и это действительно зависит от используемого вами компьютера для запуска тестов (сетевое подключение, SMTP-сервер).

То, что я обычно делаю, это убедиться, что задача action/model/rake контроллера, которая отправляет электронные письма, работает правильно (что означает без ошибок, я закрываю окончательный вызов отправки). Я также убеждаюсь, что тело, название и получатели почты являются правильными.

Edit:

Не связано непосредственно с тестированием, но я просто пришел к этому article.

Мне нравится его точка зрения на использование модели для отправки электронных писем. Поэтому, чтобы объяснить немного подробнее:

Я бы использовал контроллер для настройки переменных вида, например @body, @title, @recipient.

Итак, я бы проверил, что с учетом правильных параметров правильно создается почтовый шаблон (который является представлением). Это были ошибки с моей точки зрения.

Я обновлю это сообщение на примере, когда вернусь домой сегодня.