与之相对呼叫提供的所有数据,我只是通过使用序列让我的工厂充满活力,为我提供独特的数据。
FactoryGirl.define do
factory :mail_user do
mail_domain
account
sequence :userid do |n|
"mailuser-#{n}"
end
passwd "This!sADecentPassword11212"
active :true
filter :false
end
end
,或者使用特性/遗传给我确切的用户数据,我需要
FactoryGirl.define do
factory :administrator do
isp
sequence :email do |n|
"user#{n}@example.com"
end
active true
name "Random Awesome Admin"
password '123Abc#$1'
password_confirmation '123Abc#$1'
trait :inactive do
active false
end
trait :system do
roles [:system_admin]
end
trait :admin do
roles [:admin ]
end
trait :realm do
roles [:realm_admin]
end
trait :helpdesk do
roles [ :helpdesk ]
end
trait :dns do
roles [ :dns_admin ]
end
factory :inactive_administrator, traits: [:inactive]
factory :helpdesk_admin, traits: [:helpdesk]
factory :system_admin, traits: [:system]
factory :admin, traits: [:admin]
factory :realm_admin, traits: [:realm]
factory :dns_admin, traits: [:dns]
end
end
因为在大多数情况下,我不关心实际的用户名,等等。只是它通过了验证。所以我会看看序列/特征/依赖属性。所以你更少依赖硬编码数据。