Ruby on rails 有没有办法在RSpec3中存根一个特定类的所有方法?
我有一个自制的服务类,它帮助我减少推送通知的发送,我希望能够存根属于该类的所有方法 我在想类似的事情Ruby on rails 有没有办法在RSpec3中存根一个特定类的所有方法?,ruby-on-rails,ruby,rspec,Ruby On Rails,Ruby,Rspec,我有一个自制的服务类,它帮助我减少推送通知的发送,我希望能够存根属于该类的所有方法 我在想类似的事情 # Service Class class PushService def self.send_message ... end def self.send_payment_confirmation ... end end 在我的规格测试中,我希望能够 RSpec.describe "blah" do before do allow(PushServ
# Service Class
class PushService
def self.send_message
...
end
def self.send_payment_confirmation
...
end
end
在我的规格测试中,我希望能够
RSpec.describe "blah" do
before do
allow(PushService).to receive_everything.and_return({})
end
end
我环顾四周,发现stub_everything()似乎已被弃用,建议使用double的作为\u null_对象
,但我不确定这是如何工作的
有人能帮忙吗?是的,
stub\u所有东西都不推荐使用
是的,您可以使用作为\u null\u对象来存根测试中的所有内容,如下所示:
let(:push_service) { double(PushService).as_null_object }
当您将用作\u null\u object
时,您的对象将响应任何未实现的方法。它还允许您使用显式存根和显式期望
有关更多信息,请参阅文档。这是如何工作的?您的代码可能正在直接使用PushService
类。