Я пытаюсь создать спецификацию для потока выписки с помощью factorygirl для создания пользователя, а затем использовать метод Devise sign_in
для аутентификации пользователя, а затем использовать capybara, чтобы щелкнуть ссылку "Выйти".
Я получаю (как мне кажется) странную ошибку при запуске spec:
Failures:
1) Sign out flow successfully redirects to the welcome index (root)
Failure/Error: Unable to find matching line from backtrace
NoMethodError:
undefined method `env' for nil:NilClass
# /home/vagrant/.rvm/gems/ruby-2.0.0-p576/gems/devise-3.4.1/lib/devise/test_helpers.rb:24:in `setup_controller_for_warden'
Finished in 0.00226 seconds (files took 3.32 seconds to load)
1 example, 1 failure
Здесь spec:
require 'rails_helper'
describe "Sign out flow" do
include Devise::TestHelpers
describe "successfully" do
it "redirects to the welcome index (root)" do
user = create(:user)
sign_in user
within '.user-info' do
click_link 'Sign Out'
end
expect(current_path).to eq root_path
end
end
end
И мой user.rb
factory:
FactoryGirl.define do
factory :user do
name "Fake User"
sequence(:email, 100) { |n| "person#{n}@example.com" }
password "helloworld"
password_confirmation "helloworld"
confirmed_at Time.now
end
end
Ошибка, кажется, запускается просто из строки include Devise::TestHelpers
, поскольку я попытался комментировать весь контент спецификации и по-прежнему получить ту же ошибку.
Я думал, что помощники теста Devise будут работать из коробки; я пропустил какую-то конфигурацию? Спасибо.