gpt4 book ai didi

ruby-on-rails - RSpec 测试重定向

转载 作者:行者123 更新时间:2023-12-05 06:43:38 25 4
gpt4 key购买 nike

请帮助检查重定向。我有 Controller :

def create
@poll = current_user.polls.build(poll_params)

if @poll.save
flash[:success] = 'Голосование создано'
redirect_to user_polls_path(current_user)
else
flash.now[:error] = 'Голосование не создано'
@user = User.find(params[:user_id])
render 'new'
end
end

规范/请求/polls_spec.rb:

require 'rails_helper'

RSpec.describe "Polls", type: :request do
describe "return check" do
it "#create" do
@user = FactoryGirl.create(:user)
@poll = FactoryGirl.create(:poll, user: @user)
# binding.pry #@user OK, @poll OK
expect(@poll).to redirect_to(user_polls_path @user)
end
end
end

但在控制台运行后我得到以下错误信息:

$ rspec spec/requests
...F
Failures:
1) Polls return 200 status code for GET /polls #create
Failure/Error: expect(@poll.save).to redirect_to(user_polls_path @user)
NoMethodError:
undefined method `response_code' for nil:NilClass

最佳答案

使用

expect(response).to redirect_to(user_polls_path @user)

redirect_to 在幕后所做的是检查 expect 中使用的对象的 response_code 属性。

这就是为什么您会收到 undefined method 'response_code' for nil:NilClass 错误的原因。

关于ruby-on-rails - RSpec 测试重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32414033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com