rails 3:测试自定义配置变量

时间:2011-03-11 02:24:44

标签: ruby-on-rails-3

我想编写一些打包的插件,我可以将其插入项目并配置特定项目。例如,我可能有一个rolodex插件,我希望该人的生日可以根据需要或不需要进行配置。

在config / initializers / rolodex.rb

Rolodex :: Application.config.require_birthday = true

然后在模型Person.rb

class Person<<的ActiveRecord ::基

validates_presence_of:birthday,:if => Proc.new {| p |名片盒:: Application.config.require_birthday}

...

对某种方法来说有点坎坷 - 如果有一种更惯用的方式,那就大声喊叫。

但这是我的问题。我正在尝试编写单元测试来验证配置开关是否正常工作。但我不能。如果我编写一个设置..require_birthday = false的单元测试,则为时已晚,因为该类已经被加载并且验证器是根据初始化器中的配置值定义的。我该怎么测试呢?

1 个答案:

答案 0 :(得分:1)

it "should be strange"
 Rolodex::Application.config.should_receive(:require_birthday=).with(true)
 require Rails.root.join("config/initializers/rolodex")
end