我已将以下方法添加到项目中间:
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而不是执行代码的正确语法是什么?
提前致谢。
答案 0 :(得分:6)
你很亲密:)
allow_any_instance_of(Event)
.to receive(:finishes_after_venue_shuts?)
.and_return(false)
答案 1 :(得分:0)
你也可以这样做:
Event.any_instance.stub(:finishes_after_venue_shuts).and_return(false)