Factories with Realistic Data

Brandon Beacher's Headshot
Brandon Beacher

Here at Highgroove we often use the popular Factory Girl gem in our tests.

I also like to use a data generation library like Forgery in combination with Factory Girl.

Forgery allows me to improve my factories by using realistic instead of contrived data.

For example, here is a User factory without Forgery:

And here is the same factory with Forgery:

Now, each user created by the factory gets a realistic email address.

This becomes useful if you include Factory Girl and Forgery in the development group, in addition to the test group, in your Gemfile:

Now your factories are available from the Rails console in development mode.

Let's say you want to spin up some records in your local development database so you can see a view fully populated with realistic data. From the console simply do:

Now you've got great looking data on screen for a demo, screencast, or perhaps some debugging.

What do you think? Is realistic data in your factories important to you?

Recent Comments

comments powered by Disqus