0

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'

4

1 に答える 1