美文网首页
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