我有一个自制的服务类,它帮助我 DRY 发送推送通知,我希望能够 stub 属于该类的所有方法。
我在想类似的东西
# 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 的 as_null_object
但我不确定它是如何工作的。
有人能帮忙吗?
最佳答案
是的,stub_everything
已弃用。
是的,您可以使用 as_null_object
来 stub 测试中的所有内容,如下所示:
let(:push_service) { double(PushService).as_null_object }
当您使用as_null_object
时,您的对象将响应任何未实现的方法。它还将允许您使用显式 stub 和显式期望。
参见 Null object doubles文档以获取更多信息。
关于ruby-on-rails - 有没有办法在 RSpec 3 中 stub 特定类的所有方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33061440/