Я отправляю приглашения по электронной почте со ссылкой для подтверждения. В своем функциональном тесте я хочу проверить, содержит ли тело письма правильный URL-адрес, например:
class InvitationSenderTest < ActionMailer::TestCase
test "invite" do
...
url = new_user_url(:www_host => 'localhost', :confirm_key => invitation.confirm_key)
assert_match /http:\/\/localhost#{url}/, mail.body.encoded
end
end
В строке, начинающейся с url =
, тест получает сообщение об ошибке undefined method 'new_user_url'
, а в тесте ActionController та же строка работает без проблем.
Я попытался вставить строки:
include ActionDispatch::Routing
include ActionView::Helpers::UrlHelper
внутри определения класса, но безрезультатно. Я также пытался использовать url_for
, но это тоже не работает («неопределенная локальная переменная или метод _routes»). Я думаю, мне нужен какой-то импорт, но какой?