gpt4 book ai didi

ruby-on-rails - 有没有办法在 RSpec 3 中 stub 特定类的所有方法?

转载 作者:数据小太阳 更新时间:2023-10-29 09:02:08 25 4
gpt4 key购买 nike

我有一个自制的服务类,它帮助我 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com