Как настроить следующие модели/спецификации для издевательств в спецификации моего контроллера.Stubbing ActiveRecord динамические искатели с RSpec
Вот модели
class User < ActiveRecord::Base
has_many :favorites
end
class Favorite < ActiveRecord::Base
belongs_to :user
belongs_to :place
end
class Place < ActiveRecord::Base
has_many :favorites, :as => :favorable
end
Тогда в какой-то момент место будет проверяться, чтобы увидеть, если он в настоящее время является любимым
@favorite = @current_user.favorites.find_by_place_id(@place.id)
Теперь я хочу, чтобы дразнить пользователя для некоторых примеров
it "should be success" do
user = double("User")
user.stub(:favorites)
get :show, :id => "1081651"
response.should be_success
end
Но, в конечном итоге с
undefined method `find_by_place_id' for nil:NilClass
Что мне делать с: фаворитами, чтобы помочь им пройти. Поскольку используется динамический искатель, я не уверен, как правильно имитировать это.
Я пробовал различные варианты, что и возвращающийся ноль из : избранное заглушка, но не повезло. Проблема заключается не в том, что метод не ожидается, а в том, что ему нужно вернуть то, на что может работать find_by_place_id, и он не может работать на нуле. – RyanW
@RyanW справа, попробуйте вернуть нулевой объект из stubbed 'favorite' метода. Отредактировал ответ. –