前提
RSpecを使用し、Railsアプリのテストを作成しております。Createアクションでユーザを作成した後、リダイレクトする処理を記載しているのですが、HTTPレスポンスが200になってしまいます。リダイレクトは302と認識していますが、何が誤っているか原因がつかめていません。もし分かる方いらっしゃいましたら、ぜひ教えていただきたいです。
詳細
RSpec
1 describe 'POST #create' do 2 context 'パラメータが正しいな場合' do 3 it 'リクエストが成功すること' do 4 post users_path, params: { user: FactoryBot.attributes_for(:user) } 5 expect(response.status).to eq 302 6 end 7 end 8 end
Controller
1 def create 2 @user = User.new(user_params) 3 if @user.save 4 log_in @user 5 flash[:success] = "Welcome to Tube!" 6 redirect_to @user 7 else 8 render 'new' 9 end 10 end
bash
1Failures: 2 3 1) UsersController POST #create パラメータが妥当な場合 リクエストが成功すること 4 Failure/Error: expect(response.status).to eq 302 5 6 expected: 302 7 got: 200 8 9 (compared using ==) 10 # ./spec/request/users_spec.rb:61:in `block (4 levels) in <top (required)>' 11 12Finished in 2.32 seconds (files took 9.02 seconds to load) 136 examples, 1 failure
バージョン情報
- Ruby 2.7.1
- Rails 6.0.2.2
- RSpec 3.9
- rspec-core 3.9.1
- rspec-expectations 3.9.1
- rspec-mocks 3.9.1
- rspec-rails 3.9.1
- rspec-support 3.9.2
- FactoryBot 4.11
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。