Railsでログイン状態をdevice 無しで作りたい – Rspecnocontroller

普通にurlをgetするとexpected the response to have a success status code (2xx) but it was 302って言われます。だからRailsのテストでもログイン状態を作りたいと思ったんです。ただし、device 無しで作りたい。僕の場合は、とにかくセッションでログイン状態を作ってたんで、下記のようにすれば、テスト通りました。

describe "GET #index" do

  it "returns http success" do

      admin = User.create(name:  "admin@gmail.com",
           email: "admin@gmail.com",
           password:              "admin@gmail.com",
           password_confirmation: "admin@gmail.com",
           admin:     true,
           activated: true,
           activated_at: Time.zone.now)

      session[:user_id] = admin.id

    get :index
    expect(response).to have_http_status(:success)
  end

end

 

藤沢瞭介(Ryosuke Hujisawa)
  • りょすけと申します。18歳からプログラミングをはじめ、今はフロントエンドでReactを書いたり、AIの勉強を頑張っています。off.tokyoでは、ハイテクやガジェット、それからプログラミングに関する情報まで、エンジニアに役立つ情報を日々発信しています!

未整理記事

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です