2

我有一个 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 代码。

4

0 回答 0