d05a9a3c4c
* Add definition names to default trait key errors Closes #1222 Before this commit, referencing a trait that didn't exist would raise a generic `KeyError: Trait not registered: "trait_name"`. This can sometime make it difficult to know where exactly the error is coming from. The fact that implicitly declared associations and sequences will fall back to implicit traits if they can't be found compounds this problem. If various associations, sequences, or traits share the same name, the hunt for the error can take some time. With this commit we include the factory or trait name (i.e. the definition name) in the error message to help identify where the problematic trait originated. Because trait lookup relies on a more generic class that raises a `KeyError` for missing keys, we rescue that error, then construct a new error with our custom message using the original error's message and backtrace. |
||
---|---|---|
.github | ||
features | ||
gemfiles | ||
lib | ||
spec | ||
.gitignore | ||
.hound.yml | ||
.rspec | ||
.simplecov | ||
.travis.yml | ||
.yardopts | ||
Appraisals | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
cucumber.yml | ||
factory_bot.gemspec | ||
Gemfile | ||
Gemfile.lock | ||
GETTING_STARTED.md | ||
LICENSE | ||
NAME.md | ||
NEWS.md | ||
Rakefile | ||
README.md | ||
RELEASING.md |
factory_bot
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.
If you want to use factory_bot with Rails, see factory_bot_rails.
Interested in the history of the project name?
Transitioning from factory_girl?
Check out the guide.
Documentation
You should find the documentation for your version of factory_bot on Rubygems.
See GETTING_STARTED for information on defining and using factories. We also have a detailed introductory video, available for free on Upcase.
Install
Add the following line to Gemfile:
gem 'factory_bot'
and run bundle install
from your shell.
To install the gem manually from your shell, run:
gem install factory_bot
Supported Ruby versions
Supported Ruby versions are listed in .travis.yml
More Information
Useful Tools
- FactoryTrace - helps to find unused factories and traits.
Contributing
Please see CONTRIBUTING.md.
factory_bot was originally written by Joe Ferris and is maintained by thoughtbot. Many improvements and bugfixes were contributed by the open source community.
License
factory_bot is Copyright © 2008-2020 Joe Ferris and thoughtbot. It is free software, and may be redistributed under the terms specified in the LICENSE file.
About thoughtbot
factory_bot is maintained and funded by thoughtbot, inc. The names and logos for thoughtbot are trademarks of thoughtbot, inc.
We love open source software! See our other projects or hire us to design, develop, and grow your product.