Я новичок в Rails. Я использую FactoryGirl для создания пользователей для моих интеграционных тестов, и я не могу понять, как подписать моего пользователя в тесте.NoMethodError: undefined method `sign_in_as! ', FactoryGirl, Rspec, Rails
Моя фабрика выглядит следующим образом:
FactoryGirl.define do
factory :user do
sequence(:email) { |n| "user#{n}@ticketee.com" }
password "password"
password_confirmation "password"
end
factory :confirmed_user do
after_create { |user| user.confirm! }
end
end
И мой тест выглядит следующим образом:
feature 'Editing an exercise' do
before do
ex = FactoryGirl.create(:ex)
user = FactoryGirl.create(:user)
user.confirm!
sign_in_as!(user)
end
scenario 'can edit an exercise' do
visit '/'
click_link 'Exercises'
click_link 'running'
click_link 'edit'
fill_in 'Name', :with => 'kick boxing'
fill_in 'Description', :with => 'kicking a box'
click_button 'Save'
page.should have_content('Exercise updated!')
page.should have_content('kick boxing')
end
end
Когда я запускаю тест я получаю ошибку:
Failure/Error: sign_in_as!(user)
NoMethodError:
undefined method `sign_in_as!'
for #<RSpec::Core::ExampleGroup::Nested_1:0xb515ecc>
В приложение отлично работает, это только испытание, которое терпит неудачу. Любая помощь будет оценена по достоинству. Благодаря!
Да, я использую Devise. Я добавил c.include Devise :: TestHelpers в свой файл spec_helper, и теперь ошибка: Failure/Error: sign_in (пользователь) NoMethodError: undefined method 'env 'для nil: NilClass –
Я прочитал документацию разработчика по Github http: //github.com/plataformatec/devise снова. В сегменте тестовых помощников указано, что Devise не предоставляет никаких помощников для интеграционных тестов. Кажется, что нужно создать/реорганизовать тест «пользовательские журналы», как я и предложил. –