Ruby on rails Rspec不与拥有<;控制器中的操作员
我正在跟踪Ryan Bates关于密码重置的铁路诈骗案。我决定通过TDD实现他的代码,但我的一个测试拒绝工作。每当我跑的时候Ruby on rails Rspec不与拥有<;控制器中的操作员,ruby-on-rails,ruby-on-rails-3,rspec,controller,operators,Ruby On Rails,Ruby On Rails 3,Rspec,Controller,Operators,我正在跟踪Ryan Bates关于密码重置的铁路诈骗案。我决定通过TDD实现他的代码,但我的一个测试拒绝工作。每当我跑的时候 context "for checking update succeeds" do before do post :update, id: "2012-12-03 04:23:13 UTC" end it { should assign_to(:user) } it { should respond_with(:redirect) }
context "for checking update succeeds" do
before do
post :update, id: "2012-12-03 04:23:13 UTC"
end
it { should assign_to(:user) }
it { should respond_with(:redirect) }
it { should redirect_to(signin_path) }
it { should set_the_flash.to("Password has been reset.")}
end
我得到以下错误
Failure/Error: post :update, id: "2012-12-03 04:23:13 UTC"
NoMethodError:
undefined method `<' for nil:NilClass
失败/错误:发布:更新,id:“2012-12-03 04:23:13 UTC”
命名错误:
从注释复制的未定义方法“:
看起来像是@user。在
发送的密码是nil
。如果允许为nil
,则应通过
if @user.password_reset_sent_at && @user.password_reset_sent_at < 2.hours.ago
如果@user.password\u reset\u发送于&&@user.password\u reset\u发送于<2小时前
如果不允许这样做,那么您的模型中的某个地方就有一个bug。测试似乎很好。摘自评论:
看起来像是@user。在
发送的密码是nil
。如果允许为nil
,则应通过
if @user.password_reset_sent_at && @user.password_reset_sent_at < 2.hours.ago
如果@user.password\u reset\u发送于&&@user.password\u reset\u发送于<2小时前
如果不允许这样做,那么您的模型中的某个地方就有一个bug。测试似乎很好。看起来像@user。发送到的密码重置为nil
。如果允许为nil
,则应通过检查@user.password\u reset\u sent\u在<2.小时前发送的&&@user.password\u reset\u
。如果不允许这样做,那么您的模型中的某个地方就有一个bug。测试似乎很好。谢谢,这解决了问题。现在我需要去检查一下模型。将此作为答案发布,我会给你评分。看起来像是@user。发送到
的密码是nil
。如果允许为nil
,则应通过检查@user.password\u reset\u sent\u在<2.小时前发送的&&@user.password\u reset\u
。如果不允许这样做,那么您的模型中的某个地方就有一个bug。测试似乎很好。谢谢,这解决了问题。现在我需要去检查一下模型。把这个作为答案贴出来,我会给你评分的。