【发布时间】:2012-02-10 18:26:34
【问题描述】:
在我的 PostObserver 的 after_save 方法中有一些对外部服务的 API 调用。但我不想在使用 Rspec 进行测试时调用 after_save。有没有办法做到这一点?谢谢你。
这是 Rails 3.1
【问题讨论】:
标签: ruby-on-rails-3 rspec observer-pattern
在我的 PostObserver 的 after_save 方法中有一些对外部服务的 API 调用。但我不想在使用 Rspec 进行测试时调用 after_save。有没有办法做到这一点?谢谢你。
这是 Rails 3.1
【问题讨论】:
标签: ruby-on-rails-3 rspec observer-pattern
把它存起来:
PostObserver.instance.stub(:after_save => true)
【讨论】:
存根观察者可能会导致不必要的副作用,因为它们是单例的。 Rails 3.1 中的替代方法是 disable 测试中的观察者。例如
Post.observers.disable :all do
..
end
旧版 Rails 的另一个选项是 no-peeping-toms gem。
【讨论】: