2020-06-20 00:27:19 -04:00
# factory_bot [![Build Status][ci-image]][ci] [![Code Climate][grade-image]][grade] [![Gem Version][version-image]][version]
2011-01-19 11:21:20 -05:00
2017-10-20 15:20:28 -04:00
factory_bot is a fixtures replacement with a straightforward definition syntax, support for multiple build strategies (saved instances, unsaved instances, attribute hashes, and stubbed objects), and support for multiple factories for the same class (user, admin_user, and so on), including factory inheritance.
2011-01-19 11:21:20 -05:00
2017-10-20 15:20:28 -04:00
If you want to use factory_bot with Rails, see
[factory_bot_rails ](https://github.com/thoughtbot/factory_bot_rails ).
2019-04-23 23:40:19 -04:00
_[Interested in the history of the project name?][NAME]_
2016-08-30 11:45:43 -04:00
2017-10-21 14:43:21 -04:00
### Transitioning from factory\_girl?
2017-11-01 15:17:41 -04:00
Check out the [guide ](https://github.com/thoughtbot/factory_bot/blob/4-9-0-stable/UPGRADE_FROM_FACTORY_GIRL.md ).
2017-10-21 14:43:21 -04:00
2011-02-07 17:48:29 -05:00
Documentation
-------------
2017-10-20 15:20:28 -04:00
You should find the documentation for your version of factory_bot on [Rubygems ](https://rubygems.org/gems/factory_bot ).
2011-02-07 17:48:29 -05:00
2016-02-17 22:27:29 -05:00
See [GETTING_STARTED] for information on defining and using factories. We also
have [a detailed introductory video][], available for free on Upcase.
2018-11-12 17:33:39 -05:00
[a detailed introductory video]: https://upcase.com/videos/factory-bot?utm_source=github& utm_medium=open-source& utm_campaign=factory-girl
2011-01-19 11:21:20 -05:00
2011-07-05 08:17:41 -04:00
Install
2011-01-19 11:21:20 -05:00
--------
2016-07-12 05:26:44 -04:00
Add the following line to Gemfile:
2011-07-16 17:26:30 -04:00
2011-07-05 08:17:41 -04:00
```ruby
2017-10-20 15:20:28 -04:00
gem 'factory_bot'
2011-07-05 08:17:41 -04:00
```
2016-07-12 05:26:44 -04:00
2011-07-05 13:18:15 -04:00
and run `bundle install` from your shell.
2011-01-19 11:21:20 -05:00
2016-07-12 05:26:44 -04:00
To install the gem manually from your shell, run:
```shell
2017-10-20 15:20:28 -04:00
gem install factory_bot
2016-07-12 05:26:44 -04:00
```
2012-03-23 17:14:13 -04:00
Supported Ruby versions
-----------------------
2018-07-25 19:46:27 -04:00
The factory_bot 5.x series supports MRI Ruby 2.3+.
2017-10-20 15:20:28 -04:00
The factory_bot 3.x+ series supports MRI Ruby 1.9. Additionally, factory_bot
2014-05-30 13:53:05 -04:00
3.6+ supports JRuby 1.6.7.2+ while running in 1.9 mode. See [GETTING_STARTED]
2012-08-02 09:19:51 -04:00
for more information on configuring the JRuby environment.
2012-03-23 17:14:13 -04:00
2017-10-20 15:20:28 -04:00
For versions of Ruby prior to 1.9, please use factory_bot 2.x.
2012-03-23 17:14:13 -04:00
2011-01-19 11:21:20 -05:00
More Information
----------------
2017-10-20 15:20:28 -04:00
* [Rubygems ](https://rubygems.org/gems/factory_bot )
2018-09-03 09:37:26 -04:00
* [Stack Overflow ](https://stackoverflow.com/questions/tagged/factory-bot )
2017-10-20 15:20:28 -04:00
* [Issues ](https://github.com/thoughtbot/factory_bot/issues )
2018-09-03 09:37:26 -04:00
* [GIANT ROBOTS SMASHING INTO OTHER GIANT ROBOTS ](https://robots.thoughtbot.com/ )
2011-01-19 11:21:20 -05:00
2019-04-18 11:33:43 -04:00
[GETTING_STARTED]: https://github.com/thoughtbot/factory_bot/blob/master/GETTING_STARTED.md
2019-04-23 23:40:19 -04:00
[NAME]: https://github.com/thoughtbot/factory_bot/blob/master/NAME.md
2014-05-30 13:53:05 -04:00
2019-05-12 07:21:45 -04:00
Useful Tools
------------
* [FactoryTrace ](https://github.com/djezzzl/factory_trace ) - helps to find unused factories and traits.
2011-01-19 11:21:20 -05:00
Contributing
------------
2017-10-20 15:20:28 -04:00
Please see [CONTRIBUTING.md ](https://github.com/thoughtbot/factory_bot/blob/master/CONTRIBUTING.md ).
2011-01-19 11:21:20 -05:00
2020-04-04 18:19:59 -04:00
factory_bot was originally written by Joe Ferris and is maintained by thoughtbot.
Many improvements and bugfixes were contributed by the [open source
2017-10-20 15:20:28 -04:00
community](https://github.com/thoughtbot/factory_bot/graphs/contributors).
2011-01-19 11:21:20 -05:00
2015-03-12 09:52:31 -04:00
License
-------
2011-01-19 11:21:20 -05:00
2020-04-04 18:19:59 -04:00
factory_bot is Copyright © 2008-2020 Joe Ferris and thoughtbot. It is free
2015-03-12 09:52:31 -04:00
software, and may be redistributed under the terms specified in the
2019-04-23 23:40:19 -04:00
[LICENSE] file.
[LICENSE]: https://github.com/thoughtbot/factory_bot/blob/master/LICENSE
2011-01-19 11:21:20 -05:00
2015-03-12 09:52:31 -04:00
About thoughtbot
----------------
2019-12-13 16:10:03 -05:00
![thoughtbot ](https://thoughtbot.com/brand_assets/93:44.svg )
2015-03-12 09:52:31 -04:00
2017-10-20 15:20:28 -04:00
factory_bot is maintained and funded by thoughtbot, inc.
2011-01-19 11:21:20 -05:00
The names and logos for thoughtbot are trademarks of thoughtbot, inc.
2015-03-12 09:52:31 -04:00
We love open source software!
See [our other projects][community] or
[hire us][hire] to design, develop, and grow your product.
2011-01-19 11:21:20 -05:00
2015-03-12 09:52:31 -04:00
[community]: https://thoughtbot.com/community?utm_source=github
2018-06-12 14:39:50 -04:00
[hire]: https://thoughtbot.com/hire-us?utm_source=github
2018-06-22 16:26:58 -04:00
[ci-image]: https://travis-ci.org/thoughtbot/factory_bot.svg
2018-09-03 09:37:26 -04:00
[ci]: https://travis-ci.org/thoughtbot/factory_bot?branch=master
2018-06-22 16:26:58 -04:00
[grade-image]: https://codeclimate.com/github/thoughtbot/factory_bot/badges/gpa.svg
[grade]: https://codeclimate.com/github/thoughtbot/factory_bot
[version-image]: https://badge.fury.io/rb/factory_bot.svg
[version]: https://badge.fury.io/rb/factory_bot
2018-08-05 13:51:06 -04:00
[hound-badge-image]: https://img.shields.io/badge/Reviewed_by-Hound-8E64B0.svg
[hound]: https://houndci.com