簡體   English   中英

如何在所有單元測試中自動跳過回調,但在任何集成測試中如何跳過

[英]How to automatically skip callbacks in all unit tests but not in any integration tests

我使用Rspec在Rails 4下進行測試。

我想配置Rspec,以便我的所有單元測試都自動運行而沒有回調,但是我所有的集成測試均按Rails的預期運行—在生產和開發中都具有相同的回調。

這可能嗎?

我可以想到冗長的解決方案,其中涉及在我的實際回調中編寫條件邏輯,但不能考慮涉及配置Rspec的優雅解決方案。

您可以在單元測試運行時用測試倍數替換回調方法,如https://relishapp.com/rspec/rspec-mocks/v/3-0/docs/message-expectations/allow-a-message-上任何實例- - A級

例如,如果您有以下課程:

def Foo < ActiveRecord::Base
  before_create :my_callback

  ...

end

您可以按如下方式對回調進行存根:

allow_any_instance_of(Foo).to receive(:my_callback)

暫無
暫無

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

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