Rspec тестирование to_param override - PullRequest
1 голос
/ 13 марта 2012

Мне не удалось найти что-либо об этом, поэтому я привел это сюда. Я переопределил to_param в моей модели, чтобы объединить его с идентификатором для более красивого и безопасного 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

Что я получаю:

 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 ==)

Пример модели ... Мне здесь не хватает чего-то очевидного - может быть, для меня уже поздно ... понимание высоко ценится.

1 Ответ

2 голосов
/ 13 марта 2012

Похоже, вы пропустили точку после to_param.

mymodel.to_param.should == [mymodel.id,"test_attr"].join("-")

...