Inheritance
FakerMaker can exploit the Ruby class hierarchy to provide additional specialisation or to override some behaviours:
FakerMaker.factory :vehicle do
wheels { 4 }
colour { Faker::Color.color_name }
engine_capacity { rand( 600..2500 ) }
end
FakerMaker.factory :motorbike, parent: :vehicle do
wheels { 2 }
sidecar { [true, false].sample }
end
This is the equivalent of:
Since v3.0.0 Classes generated by FakerMaker are in the FakerMaker::Factory
namespace.
class FakerMaker::Factory::Vehicle < Object
# ...
end
class FakerMaker::Factory::Motorbike < FakerMaker::Factory::Vehicle
# ...
end
so a motorbike will still have a colour and engine capacity between 600 and 2500.