3
如何在我的控制器規格中設置以下模型/嘲笑模擬。用RSpec搗動ActiveRecord動態查找器
下面是模型
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
我該怎麼做:收藏夾來幫助它通過。由於使用了動態查找器,所以我不確定如何正確地嘲弄它。
我嘗試了各種版本,並從返回nil :最喜歡的存根,但沒有運氣。問題不是該方法不是預期的,而是它需要返回find_by_place_id可以操作的東西,並且它不能在零上操作。 – RyanW 2011-12-29 15:13:57
@RyanW正確,嘗試從stubbed'favorites'方法返回空對象。編輯答案。 – 2011-12-29 15:50:05