繁体   English   中英

RSpec - 存根实例方法

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM