Ruby on rails Rspec测试参数覆盖
我没能用谷歌搜索到这方面的任何信息,所以我把它带到了这里。 我已经在我的模型上重写了_param,将其与id连接起来,以获得更漂亮、更安全的URL。我不知道这本该在我的测试中出现在哪里。把它放到路由测试中似乎没有抓住重点。我认为这将符合模型的规格,不过:Ruby on rails Rspec测试参数覆盖,ruby-on-rails,ruby-on-rails-3,rspec2,Ruby On Rails,Ruby On Rails 3,Rspec2,我没能用谷歌搜索到这方面的任何信息,所以我把它带到了这里。 我已经在我的模型上重写了_param,将其与id连接起来,以获得更漂亮、更安全的URL。我不知道这本该在我的测试中出现在哪里。把它放到路由测试中似乎没有抓住重点。我认为这将符合模型的规格,不过: #my model class MyModel < ActiveRecord::Base def to_param [id,an_attr.parameterize].join("-") end end #my model
#my model
class MyModel < ActiveRecord::Base
def to_param
[id,an_attr.parameterize].join("-")
end
end
#my model spec
describe MyModel do
mymodel = MyModel.create!(:an_attr => "test attr")
mymodel.to_param should == [mymodel.id,"test_attr"].join("-")
end
#我的模型
类MyModel“test attr”)
mymodel.to_参数应该==[mymodel.id,“test_attr”].join(“-”)
结束
我得到的是:
Failure/Error: mymodel.to_param should == [mymodel.id,"test_attr"].join("-")
expected: "1-test_atttr"
got: #<MyModel id: nil, an_attr: nil, created_at: nil, updated_at: nil> (using ==)
失败/错误:mymodel.to_参数应该==[mymodel.id,“test_attr”].join(“-”)
预期为:“1-测试_atttr”
got:#(使用==)
一个典型的例子……我肯定错过了一些明显的东西——也许对我来说太晚了---
非常感谢您的洞察力。看起来您在
to_param
之后错过了一段时间
mymodel.to_参数应该==[mymodel.id,“test\u attr”]。加入(“-”)
doh!。。。是 啊确实是这样。。。那么,这是测试URL段塞的合适位置/方法吗?看起来你不想在路由器上做这件事,因为你必须在一个模型上存根,对吗?