繁体   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