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

Проверка маршрута rspec и хосты

Я вижу, что я могу проверять маршруты с помощью rspec следующим образом:

get("/").should route_to("welcome#index")

но у меня есть ограничения на основе имени хоста или частей имен хостов и перенаправления между несколькими. Как указать имя хоста при тестировании?

Как запустить тесты с правильной настройкой? Я попробовал распечатать root_url, и я получил:

Отсутствует хост для ссылки! Укажите параметр: host, set default_url_options [: host] или установить: only_path to true

4b9b3361

Ответ 1

То же самое происходит с моими при каждом запуске rspec spec/

Вся ошибка на самом деле:

Failure/Error: @user = Factory(:user)
     ActionView::Template::Error:
       Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true
     # ./app/views/devise/mailer/confirmation_instructions.html.erb:5:in `_app_views_devise_mailer_confirmation_instructions_html_erb__980323237__638702928'
     # ./spec/models/campaign_spec.rb:21

Следующая строка:

# ./app/views/devise/mailer/confirmation_instructions.html.erb:5:in `_app_views_devise_mailer_confirmation_instructions_html_erb__980323237__638702928'

на самом деле дал мне подсказку, что разработчик выбрал ошибку.

Оказывается, я не установил

config.action_mailer.default_url_options = { :host => 'localhost:3000' }

в config/environments/test.rb (только в development.rb)

Добавление опции конфигурации устраняет ошибки на моем. Я подозреваю, что вы используете другие драгоценные камни, для которых требуется тот же набор параметров.

Ответ 2

Ничто из этого не помогло мне. Добавив следующее к моему spec_helper.rb(в моем случае spec/support/mailer.rb, который включен в spec_helper.rb) исправлена ​​ошибка:

Rails.application.routes.default_url_options[:host] = 'test.host'

Ответ 3

В моем случае мне пришлось добавить

 config.action_mailer.default_url_options = { :host => 'localhost:5000' }

следовать

config/environments/test.rb

потому что я использовал FactoryGirl для генерации пользователя, не пропуская сообщение электронной почты от пользователя.