Testing your FactoryGirl factories (and traits)
The standard way of testing your factories is with their own specs. Thoughtbot has some nice solution for this documented in their wiki. But how do you handle your factories' traits? Simple, you add them to your test code like this:
require 'spec_helper'
FactoryGirl.factories.map(&:name).each do |factory_name|
describe "factory #{factory_name}" do
it 'is valid' do
factory = build(factory_name)
if factory.respond_to?(:valid?)
expect(factory).to be_valid, factory.errors.full_messages.join(',')
end
end
end
describe 'with trait' do
FactoryGirl.factories[factory_name].definition.defined_traits.map(&:name).each do |trait_name|
it "is valid with trait #{trait_name}" do
factory = build(factory_name, trait_name)
if factory.respond_to?(:valid?)
expect(factory).to be_valid, factory.errors.full_messages.join(',')
end
end
end
end
end
Written by Christoph Lupprich
Related protips
Have a fresh tip? Share with Coderwall community!
Post
Post a tip
Best
#Ruby
Authors
Sponsored by #native_company# — Learn More
#native_title#
#native_desc#