我在我的Rails应用程序中使用观察者来获取通知,活动源等。他们让我的模型和控制器保持干净,在应用程序端工作得很好,并且在任何非集成测试中(我已经对它进行了广泛的单元测试) /成功)。但我不能为我的生活让他们在集成测试中工作。我在spec / support / observers.rb中有以下内容(作为一个完整性检查。如果我可以让它们完全工作,我理想情况下只能启用它们进行功能测试):
RSpec.configure do |config|
config.before do
ActiveRecord::Base.observers.enable :all
end
end
无论我做什么,我都无法让我的观察者在我的集成测试中解雇(这正是我真正想要用来确保一切正常工作)。
有没有人对此有任何见解或有任何线索我可以体验到这一点?我正在使用Rails 5.0.0beta3,以及最新版本的rails-observers,rspec-rails和capybara(来自github master分支)。
答案 0 :(得分:0)
这不是我的问题的真正答案,但是没有人有时间等待。没有人关心观察者了,因为他们被从Rails 4中移除。旁边没有与他们和capybara相关的谷歌主题。
因此,为了继续前进并获得我需要的代码的集成测试覆盖率,我正在重构我的代码以使用包含回调的关注点。这消除了观察者的依赖性,而且我实际上能够以这种方式进一步抽象我的代码,因为我的许多观察者都做了几乎相同的事情,而且我的观察者在服务对象中调用了核心。
集成测试没有问题触发这些。
RIP观察员。