A library for setting up Ruby objects as test data.
Go to file
Josh Clayton and Jason Draper bef5a01b31 Introduce new callback syntax
Instead of calling before_create, after_build, after_create, or
after_stub, you can now call:

    before(:create) {|instance| instance.name = "overridden!" }
    after(:create)  {|instance| instance.name = "overridden!" }
    after(:build)   {|instance| instance.name = "overridden!" }
    after(:stub)    {|instance| instance.name = "overridden!" }

Additionally, you can declare callbacks longhand:

    callback(:after_stub) {|instance| instance.name = "overridden!" }

This allows for custom callbacks to be defined:

    callback(:custom_callback) {|instance| instance.name = "overridden!" }

Which can then be used from a custom strategy:

    class CustomStrategy
      def association(runner); end

      def result(evaluation)
        evaluation.object.tap do |instance|
          evaluation.notify(:custom_callback, instance)
        end
      end
    end

    FactoryGirl.register_strategy(:custom, CustomStrategy)

This would allow for calling:

    FactoryGirl.custom(:user)

Which would return the user instance but execute the :custom_callback callback
on the user instance first.
2012-05-04 17:59:34 -04:00
features Clean up SimpleCov usage 2012-04-23 21:50:39 -05:00
gemfiles Fix Appraisal dependencies and get suite green 2012-05-03 00:36:58 -04:00
lib Introduce new callback syntax 2012-05-04 17:59:34 -04:00
spec Introduce new callback syntax 2012-05-04 17:59:34 -04:00
.autotest Remove whitespace [Gun.io WhitespaceBot] 2011-10-21 13:40:41 -04:00
.gitignore Ignore bin dir from bundler 2012-03-09 10:38:38 -05:00
.rspec Use rspec2 2010-11-11 15:54:14 -06:00
.simplecov Clean up SimpleCov usage 2012-04-23 21:50:39 -05:00
.travis.yml Remove 1.8.x support 2012-03-16 16:43:21 -04:00
.yardopts Converted the contribution guidelines; updates to readme 2011-02-07 17:52:28 -05:00
Appraisals Fix Appraisal dependencies and get suite green 2012-05-03 00:36:58 -04:00
CONTRIBUTION_GUIDELINES.md http => https 2012-01-12 21:23:33 +01:00
GETTING_STARTED.md Introduce new callback syntax 2012-05-04 17:59:34 -04:00
Gemfile Update gemspec to reflect proper dependencies and add Rails 3.1 coverage 2011-09-02 11:03:58 -04:00
Gemfile.lock Fix Appraisal dependencies and get suite green 2012-05-03 00:36:58 -04:00
LICENSE Added a license file 2008-06-01 11:27:59 -07:00
NEWS Bump version to 3.2.0 2012-04-24 11:52:33 -05:00
README.md [#324] Add supported Ruby versions to README 2012-03-23 17:14:13 -04:00
Rakefile Remove 1.8.x support 2012-03-16 16:43:21 -04:00
cucumber.yml Fixed issues with some attributes being skipped and added support for linked associations in step definitions 2009-09-15 16:56:20 -04:00
factory_girl.gemspec Update appraisal 2012-04-06 15:49:08 -04:00

README.md

factory_girl Build Status Dependency Status

factory_girl 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_girl with Rails, see factory_girl_rails.

Documentation

You should find the documentation for your version of factory_girl on Rubygems.

See GETTING_STARTED for information on defining and using factories.

Install

gem install factory_girl

or add the following line to Gemfile:

gem 'factory_girl'

and run bundle install from your shell.

Supported Ruby versions

The Factory Girl 3.x series supports Ruby 1.9.x.

For older versions of Ruby, please use the Factory Girl 2.x series.

More Information

Contributing

Please see the contribution guidelines.

Credits

factory_girl was written by Joe Ferris with contributions from several authors, including:

  • Alex Sharp
  • Eugene Bolshakov
  • Jon Yurek
  • Josh Nichols
  • Josh Owens
  • Nate Sutton
  • Josh Clayton
  • Thomas Walpole

The syntax layers are derived from software written by the following authors:

  • Pete Yandell
  • Rick Bradley
  • Yossef Mendelssohn

thoughtbot

factory_girl is maintained and funded by thoughtbot, inc

The names and logos for thoughtbot are trademarks of thoughtbot, inc.

License

factory_girl is Copyright © 2008-2011 Joe Ferris and thoughtbot. It is free software, and may be redistributed under the terms specified in the LICENSE file.