[英]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.