I have got a class, that is the base of some other classes that specializes the behavior:
class Task < ActiveRecord::Base
  attr_accessible :type, :name, :command
  validates_presence_of :type, :name, :command
  # some methods I would like to test
end
The class CounterTask inherits from Task
class CounterTask < Task 
end
This all works fine until I am trying to test the base class, since it must have a type.
FactoryGirl.define do
  factory :task do
    sequence(:name) { |n| "name_#{n}" }
    sequence(:command) { |n|  "command_#{n}" }
  end
end
How would you test the basic functionality of the superclass?
You can declare the definitions of factories as follow:
FactoryGirl.define do
  factory :task, class: 'Task' do
    shop
    currency
    value 10
  end
  factory :counter_task, parent: :task, class: 'CounterTask' do
  end
end
And now you can test base class isolated from its own factory and the same for each inherited class.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With