我想编写一些打包的插件,我可以将其插入项目并配置特定项目。例如,我可能有一个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的单元测试,则为时已晚,因为该类已经被加载并且验证器是根据初始化器中的配置值定义的。我该怎么测试呢?
答案 0 :(得分:1)
it "should be strange" Rolodex::Application.config.should_receive(:require_birthday=).with(true) require Rails.root.join("config/initializers/rolodex") end