工厂女孩新手:调用(不创建)一个现有的工厂作为一个协会
-
26-09-2019 - |
题
我有涉及关联到其他工厂的一些factorygirl工厂。例如:
FactoryGirl.define do
factory :user do |f|
f.sequence(:email) { |n| "user#{n}@example.com" }
f.password "foobar"
f.password_confirmation { |u| u.password }
f.role_id 2
f.association :role, :factory => :role
end
end
的问题是,如果我叫厂(:用户)两次,我得到一个重复错误(有一个唯一性约束的role.name列)
所以,问题是:我怎么指定上面应该创建:如果它不存在的角色工厂,但利用现有的一个,如果它不
解决方案
你为什么不使用对工厂的角色名的序列。例如 定义序列角色名等在
FactoryGirl.sequence :role_name do |n|
"role#{n}"
end
和定义像厂的作用
factory.role do |role|
f.name Factory.next :role_name
end
这样,每一个新的角色将被创建的时间,但有不同的ROLE_NAME。您可以通过创建在每个测试的角色通过角色Factory.build。但我发现很麻烦。
不隶属于 StackOverflow