Тестирование простого ИППП с помощью FactoryGirl
У меня есть класс, который является базой некоторых других классов, которые специализируются на поведении:
class Task < ActiveRecord::Base
attr_accessible :type, :name, :command
validates_presence_of :type, :name, :command
# some methods I would like to test
end
Класс CounterTask наследует от Task
class CounterTask < Task
end
Все работает нормально, пока я не пытаюсь проверить базовый класс, так как он должен иметь тип.
FactoryGirl.define do
factory :task do
sequence(:name) { |n| "name_#{n}" }
sequence(:command) { |n| "command_#{n}" }
end
end
Как бы вы протестировали основные функции суперкласса?
Ответы
Ответ 1
Вы можете объявить определения фабрик следующим образом:
FactoryGirl.define do
factory :task, class: 'Task' do
shop
currency
value 10
end
factory :counter_task, parent: :task, class: 'CounterTask' do
end
end
И теперь вы можете протестировать базовый класс, изолированный от его собственного factory и тот же для каждого унаследованного класса.