美文网首页
Gem: Factory Girl

Gem: Factory Girl

作者: bookinstock_ | 来源:发表于2017-04-24 08:52 被阅读42次

intro

  • a library for setting up Ruby objects as test data.
  • factory_girl is a fixtures replacement with a straightforward definition syntax
  • build strategies (saved objs, unsaved objs, attribute hashes, and stubbed objs)
  • multiple factories, transient, lazy attributes, trait, inheritance
  • sequences, aliases, associations, callbacks, etc...

config in rails

  • add factory_girl_rails gem in development and test env
  • require 'factory_girl_rails' and 'support/factory_girl' to 'spec_helper'.

lazy attributes

  • 'normal' attributes are evaluated when the factory is defined.
  • 'lazy' attributes are evaluated when the instance is initialised.
  • tips: provide static values as 'normal' attributes, like name, description, etc.
  • tips: provide associations and dynamically created values as 'lazy' attrs, e.g. Time.
  • tips: 'lazy' attributes can work with 'transient' attributes.

play in rails console

  1. add factory_girl_rails gem in development and test env.
  2. rails console test --sandbox # go in console test env sandbox mode.
  3. include FactoryGirl::Syntax::Methods # call methods without FactoryGirl.
  4. user = build(:user) # initialize user instance from user factory.

check validation

  1. FactoryGirl.factories get all 'FactoryGirl::Factory' instances
  2. FactoryGirl.factories.each { |f| puts f.name } # show all factory names
  3. target_factories = FactoryGirl.factories.select { |f| f.name =~ /^user_/ }
  4. FactoryGirl.lint target_factories; # FactoryGirl.lint check all factories

Resources:

相关文章

网友评论

      本文标题:Gem: Factory Girl

      本文链接:https://www.haomeiwen.com/subject/pmpuzttx.html