gpt4 book ai didi

ruby-on-rails-3 - 如何在rails 3中没有观察者的情况下运行rspec?

转载 作者:行者123 更新时间:2023-12-04 00:04:54 24 4
gpt4 key购买 nike

我有一个有一些观察者的 rails3 应用程序。我一生都无法弄清楚如何为我的 rspec 测试关闭这些功能!

最佳答案

no_peeping_toms与 Rails 3.1+ 一起使用时将输出弃用警告。目前有7 pull requests打开以删除这些弃用警告,但是 gem is not necessary with Rails 3.1+ . Rails 3.1 添加到 ActiveModel(以及 ActiveRecord)的能力,以启用和 disable观察员。

您可以在 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

关于ruby-on-rails-3 - 如何在rails 3中没有观察者的情况下运行rspec?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3961880/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com