[英]Is there a way to stub all methods of a particular class in RSpec 3?
我有一個自制的服務類,它幫助我完成推送通知的發送,我希望能夠存根屬於該類的所有方法。
我在想像
# 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
存根測試中的所有內容:
let(:push_service) { double(PushService).as_null_object }
當您使用as_null_object
,您的對象將響應任何未實現的方法。 它還允許您使用顯式存根和顯式期望。
有關更多信息,請參閱Null object doubles文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.