簡體   English   中英

如何在 ruby​​ rspec 中模擬模塊靜態方法?

[英]How to mock module static method in ruby rspec?

我正在嘗試編寫一些 rspec 測試,並且我想從模塊中模擬一個靜態方法。

設置是這樣的:

module MyModule

 def self.my_method
  'end'
 end

在 rspec 里面我想模擬 my_method,像這樣:

alow_any_instance_of(MyModule).to(
 receive(:my_method).and_return('not_bla')
)

在工作代碼中,該方法是這樣調用的: MyModule.my_method

當我嘗試使用上面的設置時,它給了我以下錯誤:

MyModule 未實現 #my_method

RSpec 中存根消息的新語法如下所示:

allow(MyModule).to receive(:my_method).and_return('not_bla')

不再推薦的舊語法如下所示:

MyModule.stub(:my_method).and_return('not_bla')

我在這里找到了答案: https ://www.ruby-forum.com/t/modules-and-stub/168721

解決方案代碼如下所示:

MyModule.stub(:my_method).and_return('not_bla')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM