Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rspec测试参数覆盖_Ruby On Rails_Ruby On Rails 3_Rspec2 - Fatal编程技术网

Ruby on rails Rspec测试参数覆盖

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

我没能用谷歌搜索到这方面的任何信息,所以我把它带到了这里。 我已经在我的模型上重写了_param,将其与id连接起来,以获得更漂亮、更安全的URL。我不知道这本该在我的测试中出现在哪里。把它放到路由测试中似乎没有抓住重点。我认为这将符合模型的规格,不过:

#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段塞的合适位置/方法吗?看起来你不想在路由器上做这件事,因为你必须在一个模型上存根,对吗?