我有一个 Rails 初始化程序,它从配置文件创建一些常量,如下所示:
Kernel.const_set "MailChimp", Module.new
config["lists"].each_pair {|k,v| MailChimp.const_set "#{k}_List".upcase, v} if config
后来,我有一个观察者订阅用户到一个列表:
Delayed::Job.enqueue Jobs::NewsletterSubscriptionJob.new(MailChimp::NEWSLETTER_SUBSCRIBERS_LIST, record)
当我在 RSpec 中测试这个时,
Kernel.const_set :MailChimp, Module.new
MailChimp.const_set :NEWSLETTER_SUBSCRIBERS_LIST, "foo"
我得到未初始化的常量 UserObserver::MailChimp
我在规范中看到了一些与常量相关的答案,但我似乎无法让它发挥作用。
如何在 RSpec 中设置这些常量以便测试观察者?
仅供参考:这是 Ruby 1.8.7 代码。