我有一個有一些觀察員的rails3應用程序。我不能爲我的生活弄清楚如何關閉我的rspec測試!如何在rails 3中沒有觀察者運行rspec?
12
A
回答
5
兩個選項可能是:
- No peeping toms
- 以下內容添加到您的test.rb環境:使用Rails 3.1+使用時
config.active_record.observers = []
30
no_peeping_toms將輸出廢棄警告。目前它已打開7 pull requests以刪除這些棄用警告,但是gem is not necessary with Rails 3.1+。 Rails 3.1添加到ActiveModel(因此ActiveRecord)啓用和觀察者的能力。
你可以把下面的行spec_helper關閉所有的觀察家都ActiveRecord的後裔型號:
# spec/spec_helper.rb
...
RSpec.configure do |config|
...
config.before do
...
ActiveRecord::Base.observers.disable :all # <-- Turn 'em all off!
end
end
你可以把他們重新選擇在您的規格與包裝的動作,以測試他們的行爲enable方法。
# spec/models/foo_observer_spec.rb
describe FooObserver do
subject { FooObserver.instance }
it 'notices when new Foos are created' do
subject.should_receive(:after_create)
Foo.observers.enable :foo_observer do # <- Turn FooObserver on
Foo.create('my new foo')
end # <- ... and then back off
end
end
相關問題
- 1. Rspec和rails中的觀察者
- 2. 觀察者未運行
- 3. Rails 3 - 獲取Lates觀察者記錄
- 4. ActiveRecord觀察者沒有在指定的回調中調用(Rails 3)
- 5. 內容觀察者在後臺運行
- 6. 如何在Rspec中測試時跳過觀察者after_save調用?
- 7. 如何在觀察者
- 8. 如何Magento在觀察者
- 9. Rails在觀察者中拉動屬性
- 10. 如何使用1000s的觀察者有效地運行Observable.Where()?
- 11. Javascript運行時間函數觀察者
- 12. 觀察者只運行一次
- 13. 觀察者模式 - 觀察者創建
- 14. 觀察者運行線程數組
- 15. Rails 3.2.9。使用RSpec測試觀察者(遇到should_receive)
- 16. 觀察者python中的可觀察類
- 17. postNotificationName沒有要求觀察者方法
- 18. 觀察者模式:如何區分觀察者
- 19. Rails引擎中的觀察者
- 20. Firebase觀察者在viewDidLoad中調用時沒有觀察數據庫更改
- 21. Rails觀察員沒有發射......有時
- 22. Rails觀察者 - 什麼時候以及何時不在Rails中使用觀察者
- 23. 如何測試觀察者?
- 24. 如何刪除觀察者
- 25. 具有兩個觀察者列表的觀察者模式
- 26. 爲什麼在可觀察對象作爲新線程運行時沒有通知觀察者?
- 27. 如何檢索所有NSNotificationCenter觀察者?
- 28. Android「觀察者」
- 29. CFNotificationCenterRemoveObserver觀察者
- 30. 如何使用Ruby RSpec來測試添加觀察者的類?
感謝您指向'Foo.observers.enable' – iRonin 2012-09-11 06:45:13
不客氣! – 2012-09-27 02:37:36