我知道我可以给工厂女孩这样的静态数据值:
factory :post do
title 'New post'
number 7
end但是如果我对每个标题和数字都有一个以上的值呢。如果标题是“新邮报”、“旧邮报”、“你好”,而号码是7、8、9,我如何将这些数据传递给工厂女孩呢?我应该使用数组还是使用多个do结束块?
发布于 2015-10-14 13:59:29
你可以简单地做:
posts_attrs = [{ title: 'new', number: 6}, { title: 'old' }]
posts_attrs.each do |post_attrs|
factory :post do
title post_attrs[:title] || 'default title'
number post_attrs[:number] || 1
end
end发布于 2015-10-14 14:12:27
发布于 2015-10-14 14:29:16
对于数字,可以使用FactoryGirl序列:
FactoryGirl.define do
sequence :email do |n|
"person#{n}@example.com"
end
end要生成一些随机字符串,有一个gem Faker
FactoryGirl.define do
factory :post do
title { Faker::Lorem.sentence }
end
endFaker可以用来生成随机的电子邮件、字符串、电子商务项目、地址和许多其他东西,参见https://github.com/stympy/faker。
https://stackoverflow.com/questions/33127298
复制相似问题