PostObserver中的after_save方法中有一些對外部服務的API調用。但我不想在使用Rspec進行測試時調用after_save。有沒有辦法做到這一點?謝謝。如何在Rspec中測試時跳過觀察者after_save調用?
這是Rails的3.1
PostObserver中的after_save方法中有一些對外部服務的API調用。但我不想在使用Rspec進行測試時調用after_save。有沒有辦法做到這一點?謝謝。如何在Rspec中測試時跳過觀察者after_save調用?
這是Rails的3.1
存根出來:
PostObserver.instance.stub(:after_save => true)
打樁觀察家可能會導致不必要的副作用,因爲他們是單身。 Rails 3.1中的一個替代方案是disable您測試中的觀察者。例如
Post.observers.disable :all do
..
end
舊版本的Rails的另一種選擇是no-peeping-toms寶石。
這讓我想起使用PostObserver.any_instance.stubs(:after_save => true);謝謝:) – jchenjc 2012-01-15 18:45:45