[英]RSpec - stubbing an instance method
我在項目中間添加了以下方法:
def finishes_after_venue_shuts?
return unless venue && finish
day = regular_day ? regular_day : start.strftime('%a').downcase
finish > venue.openingtimes.where(default_day: day).pluck(:finish)[0]
end
這導致項目中 1000 多個測試失敗。 他們因以下錯誤代碼而失敗:
ArgumentError:
comparison of ActiveSupport::TimeWithZone with nil failed
我試圖按如下方式排除該方法,但顯然我做錯了什么:
before do
allow(Event.any_instance).to receive(:finishes_after_venue_shuts?).and_return(false)
end
刪除方法並簡單地返回 false 而不是執行代碼的正確語法是什么?
提前致謝。
你很接近:)
allow_any_instance_of(Event)
.to receive(:finishes_after_venue_shuts?)
.and_return(false)
你也可以這樣做:
Event.any_instance.stub(:finishes_after_venue_shuts).and_return(false)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.