Railsでrspecを使ったテストを学び始めたばかりです。User モデルがあり、ユーザーをサインインさせるためのテストを作成しようとしています。次のように動作します。
describe "user login" do
let(:user) { FactoryGirl.create(:user) }
it "logs user in" do
visit root_path
click_link "Log In"
fill_in "Email", with: user.email
fill_in "Password", with: user.password
click_button "Submit"
expect(page).to have_content("You are now logged in.")
end
end
私application_controller.rb
には次の方法があります:
def sign_in(user)
cookies.permanent[:auth_token] = user.auth_token
current_user = user
end
helper_method: sign_in
そして、なぜ私のsign_in
方法が次のテストで機能しないのか疑問に思っています:
describe "user login2" do
let(:user) { FactoryGirl.create(:user) }
it "logs user in" do
sign_in(user)
expect(page).to have_content("You are now logged in.")
end
end
次のエラーが表示されます。Failure/Error: sign_in(user)
NoMethodError:
undefined method 'sign_in'