ホーム 技術ネタ

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

 

-ホーム, 技術ネタ

Copyright© off , 2020 All Rights Reserved Powered by AFFINGER5.