factory_bot
and
factory_bot_rails
release
candidates were released this week thanks to
Joe and
Josh.
The big change is some great-looking new syntax. Check it out:
Old:
Factory.sequence :email do |n|
"email#{n}@example.com"
end
Factory.define :user do |factory|
factory.name { 'Ron Burgundy' }
factory.email { Factory.next(:email) }
end
Factory.define :admin, parent: :user do |factory|
factory.admin { true }
end
Factory.define :dog do |factory|
factory.name { 'Baxter' }
factory.association(:owner, factory: :user)
end
New:
FactoryBot.define do
sequence :email do |n|
"email#{n}@example.com"
end
factory :user, aliases: [:owner] do
name { 'Ron Burgundy' }
email
factory :admin do
admin { true }
end
end
factory :dog do
name { 'Baxter' }
owner
end
end
It reminds me of the difference between Rails 2.x routes and Rails 3.x routes.
Read the factory_bot book, then try it in your app:
gem 'factory_bot_rails', '1.1.rc1'
Disclaimer:
Looking for FactoryGirl? The library was renamed in 2017. Project name history can be found here.