Интеграционные тесты для восстановления пароля с использованием rspec, capybara и email_spec

Я пытаюсь проверить восстановление пароля с помощью rspec/capybara с помощью email_spec

Мой test.rb содержит:

config.action_mailer.delivery_method = :test

Мой тест идет так:

feature User do
  let!(:user){ FactoryGirl.build(:user) }

  before(:each) do
    visit root_path
    click_link "Sign up/in"
  end

  scenario "recover password" do
    user.save!
    click_link "Forgot password?"
    fill_in "Email", :with => user.email
    click_button "Send me reset password instructions"
    unread_emails_for(user.email).should be_present
  end

Мой тест не проходит так:

  1) User recover password
     Failure/Error: click_button "Send me reset password instructions"
     ActionView::Template::Error:
       Missing host to link to! Please provide the :host parameter,
       set default_url_options[:host], or set :only_path to true

Если я установлю default_url_options, rspec попытается отправить письмо. Я не слишком уверен насчет: only_path.

Может кто-нибудь, пожалуйста, укажите мне в правильном направлении? Большое спасибо.

1 ответ

Установите следующую строку в /config/environments/test.rb:

config.action_mailer.default_url_options = { :host => 'localhost:3000' }
Другие вопросы по тегам