在Rspec中测试时如何跳过观察者的after_save调用?

时间:2012-01-15 11:52:29

标签: ruby-on-rails-3 rspec observer-pattern

在PostObserver的after_save方法中有一些对外部服务的API调用。但我不想在使用Rspec进行测试时调用after_save。有没有办法做到这一点?谢谢。

这是Rails 3.1

2 个答案:

答案 0 :(得分:12)

结账观察员可能会产生不必要的副作用,因为他们是单身人士。 Rails 3.1中的另一个选择是disable测试中的观察者。 e.g。

Post.observers.disable :all do
  ..
end

旧版Rails的另一个选择是no-peeping-toms gem。

答案 1 :(得分:1)

把它拿出来:

PostObserver.instance.stub(:after_save => true)