Hashrocket.com / blog

Fabrication 2.0 Upgrade Guide

posted on and written by in

Image 100x100 paul elliott

Fabrication 2.0 came out a few days ago and to bring some of the cool new enhancements we had to break some of the api for existing users. Here is a short list of the changes you’ll need to make in your test suite to upgrade.

Remove all the “!” suffixes

Lazy generation is no longer a thing in fabrication so the “!” is no longer necessary. If you leave them in you will see a deprecation warning but things will work

Update usage of attribute block variables

In fabrication 1.x, a block was passed the object being generated. Now is just collects them into an attributes hash and provides that to the block.

The old way:

Fabricator(:person) do
  first_name { Faker::Name.first_name }
  email { |person| "#{person.first_name.downcase}@example.com" }
end

The new way:

Fabricator(:person) do
  first_name { Faker::Name.first_name }
  email { |attrs| "#{attrs[:first_name].downcase}@example.com" }
end

As you can see, the change is very simple to make. You will just need to go through and update your Fabricators.

Regenerate the fabrication cucumber steps

Some bug fixes have been made in the steps and a new feature was introduced, so you should regenerate the steps with rails g fabrication:cucumber_steps if you are using them in your project.

Getting Help

If you run into any issues, be sure to check the documentation (http://fabricationgem.org).

If that doesn’t help you can open an issue on github (https://github.com/paulelliott/fabrication/issues).

Or if you prefer, you can send a message to the mailing list and I will reply to you (https://groups.google.com/group/fabricationgem).

Posted in Development and tagged with Ruby