I just started a new Rails 3.2 project, and to ensure that the proper test files are generated using Shoulda or Factory_Girl, I’ve installed those gems and configured the application to generate the test files using these gems.
Added to config/application.rb:
# Configure generators values. # http://guides.rubyonrails.org/generators.html config.generators do |g| g.stylesheets false g.test_framework :shoulda g.fallbacks[:shoulda] = :test_unit g.fixture_replacement :factory_girl end
Each time I would try to create a new scaffold, it would use shoulda to generate the test unit file, but would generate a YAML fixture.
invoke active_record create db/migrate/20120319180004_create_posts.rb create app/models/post.rb invoke shoulda create test/unit/post_test.rb create test/fixtures/posts.yml
Over a year ago there was a gem needed to ensure that generators were present to generate Factory_Girl factories instead of YAML fixtures, but the code for those generators was moved to the official Factory_Girl gem, so that’s not the cause of this issue.
It turns out that I had configured factory_girl_rails in my Gemfile only under the ‘test’ group, and not the ‘development’ group as well.
group :development, :test do gem 'shoulda' gem 'factory_girl' gem 'factory_girl_rails' end
After configuring these under both test and development, the scaffold generator created the factory under ‘test/factories’ as I had expected.