Rails 3: как протестировать модели, использующие плагин типа activ_as? - PullRequest
2 голосов
/ 16 мая 2011

Я написал очень простой плагин (следуя инструкции Rails ), который добавляет has_sex метод к ActiveRecord::Base, который при вызове добавляет несколько методов экземпляра (для получения соответствующих местоимений).и т. д.) к модели и validates :sex, inclusion: {in: %w(male female)}.

Как мне написать модульные тесты для моделей, использующих это?

Я мог бы проверить это Person < HasSex::InstanceMethods, что будет истинно, если has_sex был вызван на Person (и тесты плагинов гарантируют, что желаемое поведение приводит к результатам).Но мне интересно, действительно ли это тестирование реализации, а не поведения?

С другой стороны, я мог бы проверить, разрешает ли Person.sex только значения «мужской» и «женский», и что различные методы экземпляра имеютжелаемый эффект, но затем я дублирую тесты, которые я написал для самого плагина.

Какой лучший подход здесь?Для протокола, я тестирую с Test :: Unit и Shoulda, но меня больше интересует принцип, а не мелкие детали.

...