我正在对需要用户工厂的功能进行测试。我在使用多个序列定义工厂时遇到问题:
FactoryGirl.define do
sequence(:username, 1, aliases: [:sender, :receiver]) { |n| "user#{n}"};
sequence(:email, 1, aliases: [:sender, :receiver]) { |n| "user#{n}@example.com"};
factory :user do
username
email
password "secret"
password_confirmation "secret"
role "1"
end
end
到目前为止,这正是我想要实现的目标,但它失败并显示此错误消息 - "序列已注册:发件人(FactoryGirl :: DuplicateDefinitionError)" 当我运行时测试。
我尝试了其他几种方法,但似乎无法实现。它只使用一个序列,但当我尝试两个时失败。我理解错误消息,除了我第一次使用工厂女孩,并希望得到一些关于如何实现它的澄清。
答案 0 :(得分:0)
试试这个
FactoryGirl.define do
sequence :email do |n|
"email#{n}@factory.com"
end
sequence :username do |n|
"testuser#{n}"
end
factory :user do
username
email
password "secret"
password_confirmation "secret"
role "1"
end
end