【问题标题】:How to group attributes in Fabrication like using trait in Factory_Girl如何在 Fabrication 中对属性进行分组,例如在 Factory_Girl 中使用 trait
【发布时间】:2016-03-18 15:15:09
【问题描述】:

你能通过代码告诉我如何使用Fabrication 转换这个特定的factory_girl 代码吗?

factory :user do
  name "Friendly User"
  login { name }

  trait :male do
    name   "John Doe"
    gender "Male"
    login { "#{name} (M)" }
  end

  trait :female do
    name   "Jane Doe"
    gender "Female"
    login { "#{name} (F)" }
  end

  trait :admin do
    admin true
    login { "admin-#{name}" }
  end

  factory :male_admin,   traits: [:male, :admin]   # login will be "admin-John Doe"
  factory :female_admin, traits: [:admin, :female] # login will be "Jane Doe (F)"
end

如果您看到Trait in Fabrication inheritance 是这里的方法之一,但问题是我们不能为它定义Fabricator,因为它们不是models。谁能告诉我如何在Fabrication 中对属性进行分组?

【问题讨论】:

    标签: ruby ruby-on-rails-4 factory-bot fabrication-gem


    【解决方案1】:

    你在编造时是这样表达的:

    Fabricator :user do
      admin false
      gender 'Female'
      name "Friendly User"
      login do |attrs|
        if attrs[:admin]
          "admin-#{attrs[:name]}"
        else
          "#{attrs[:name]} (#{attrs[:gender][0]})"
        end
      end
    end
    
    Fabricator(:female_admin, from: :user) do
      admin true
    end
    
    Fabricator(:male_admin, from: :female_admin) do
      gender 'Male'
    end
    

    【讨论】:

      猜你喜欢
      • 2021-08-11
      • 1970-01-01
      • 2016-03-07
      • 2011-09-11
      • 2012-03-15
      • 2016-02-11
      • 2016-04-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多