рельсы 3: тестирование пользовательских переменных конфигурации - PullRequest
1 голос
/ 11 марта 2011

Я хочу написать несколько упакованных плагинов, которые я могу добавить в проект и настроить для конкретного проекта. Например, у меня может быть плагин rolodex, в котором я хочу, чтобы день рождения человека настраивался как требуется или не требовалось.

в config / initializer / rolodex.rb

Rolodex :: Application.config.require_birthday = true

Тогда в модели Person.rb

класс Person << ActiveRecord :: Base </p>

validates_presence_of: birthday,: if => Proc.new {| p | Ролодекс :: Application.config.require_birthday}

...

возможно, немного неровно для подхода - если есть более идиоматический способ, кричите.

но вот мой вопрос. Я пытаюсь написать модульные тесты, чтобы убедиться, что переключатель конфигурации работает. но я не могу. если я напишу модульный тест, который устанавливает ..require_birthday = false, будет слишком поздно, потому что класс уже загружен и валидатор определен на основе значений конфигурации в инициализаторах. как я должен это проверить?

1 Ответ

1 голос
/ 14 июня 2011
it "should be strange"
 Rolodex::Application.config.should_receive(:require_birthday=).with(true)
 require Rails.root.join("config/initializers/rolodex")
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...