4e730548cb
Fixes #165 and closes #166 Currently the only way to customize the factory definition file paths is to do it in an initializer right after the "factory_bot.set_factory_paths" initializer. With this commit, we can customize factory definition file paths by setting `config.factory_bot.definition_file_paths` in config/application.rb or the appropriate environment file. Once we update the documentation to include this new configuration, we should be able to close #149 and #180 as well, since using this configuration can replace the initializer solution for sharing factories in an engine (the initializer solution will still work, but with the new configuration you don't need to know anything about the fbr railtie). This will also allow us to close #192, since we can use this configuration with an empty array to disable automatic loading of factories in development. |
||
---|---|---|
bin | ||
features | ||
gemfiles | ||
lib | ||
spec | ||
.gitignore | ||
.rspec | ||
.travis.yml | ||
Appraisals | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
factory_bot_rails.gemspec | ||
Gemfile | ||
Gemfile.lock | ||
LICENSE | ||
NEWS | ||
Rakefile | ||
README.md | ||
RELEASING.md |
factory_bot_rails
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.
Transitioning from factory_girl_rails?
Check out the guide.
Rails
factory_bot_rails provides Rails integration for factory_bot.
Currently, automatic factory definition loading is the only Rails-specific feature.
Supported Rails versions are listed in Appraisals
. Supported
Ruby versions are listed in .travis.yml
.
Download
Github: http://github.com/thoughtbot/factory_bot_rails
Gem:
$ gem install factory_bot_rails
Configuration
Add factory_bot_rails
to your Gemfile:
group :development, :test do
gem 'factory_bot_rails'
end
Generators for factories will automatically substitute fixture (and maybe any other
fixture_replacement
you set). If you want to disable this feature, add the
following to your application.rb file:
config.generators do |g|
g.factory_bot false
end
Default factories directory is test/factories
, or spec/factories
if
test_framework
generator is set to :rspec
; change this behavior with:
config.generators do |g|
g.factory_bot dir: 'custom/dir/for/factories'
end
If you use factory_bot for fixture replacement, ensure that factory_bot_rails is available in the development group. If it's not, Rails will generate standard .yml files instead of factory files.
factory_bot takes an option suffix: 'some_suffix'
to generate factories as
modelname_some_suffix.rb
.
If you use factory_bot for fixture replacement and already have a
factories.rb
file in the directory that contains your tests,
factory_bot_rails will insert new factory definitions at the top of
factories.rb
.
You may need to configure your test suite to include factory_bot methods; see configuration.
Contributing
Please see CONTRIBUTING.md.
factory_bot_rails was originally written by Joe Ferris and is now maintained by Josh Clayton. Many improvements and bugfixes were contributed by the open source community.
License
factory_bot_rails is Copyright © 2008-2016 Joe Ferris and thoughtbot. It is free software, and may be redistributed under the terms specified in the LICENSE file.
About thoughtbot
factory_bot_rails is maintained and funded by thoughtbot, inc. The names and logos for thoughtbot are trademarks of thoughtbot, inc.
We are passionate about open source software. See our other projects. We are available for hire.