前提・実現したいこと
RSpecのリダイレクトのテストをしたいです。
基本的な動作の流れは、ユーザー作成、ユーザー編集画面に移動、ユーザー編集、編集後にリダイレクト、となります。
そのリダイレクトのテストになります。
発生している問題・エラーメッセージ
Failure/Error: expect(response).to have_http_status(:redirect) expected the response to have a redirect status code (3xx) but it was 200
該当のソースコード
(users_logins_spec.rb) describe "Successful Edit" do let(:user02) { FactoryBot.create(:user02) } it "responds successfully" do post login_path, params: { email: user02.email, password: user02.password, } expect(user02).to be_valid expect(response).to have_http_status(:redirect) get "/users/#{user02.id}/edit" expect(response).to have_http_status(:ok) post "/users/#{user02.id}/update", params: { email: "updated@example.com", password: "123456", } expect(response).to redirect_to "/users/#{user02.id}" end
(users.rb) factory :user02, class: User do name 'user02' email 'user02@example.com' password '123456' end
(users_controller.rb) def update @user = User.find_by(id: params[:id]) @user.name = params[:name] @user.email = params[:email] if params[:image] @user.image_name = "#{@user.id}.jpg" image = params[:image] File.binwrite("public/user_images/#{@user.image_name}", image.read) end if @user.save flash[:notice] = "ユーザー情報を編集しました" redirect_to("/users/#{@user.id}") else render("users/edit") end end
ローカルサーバーで動かしてもその動きになるのですが。。。
すみませんが見て頂けると助かります。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。