如何在 Fabrication 中对属性进行分组,例如在 Factory_Girl 中使用特征
How to group attributes in Fabrication like using trait in Factory_Girl
任何人都可以通过代码告诉我我们如何使用 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
如果你看到这个 inheritance
是这里的方法之一,但问题是我们不能为它定义 Fabricator
,因为它们不是 models
。谁能告诉我如何在 Fabrication
中对属性进行分组?
你捏造的是这样表达的:
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
任何人都可以通过代码告诉我我们如何使用 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
如果你看到这个 inheritance
是这里的方法之一,但问题是我们不能为它定义 Fabricator
,因为它们不是 models
。谁能告诉我如何在 Fabrication
中对属性进行分组?
你捏造的是这样表达的:
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