2
factory_girl
有没有办法指定一个关联应该指向的随机实例?例如,我有一个Like
对象,其中一个和一个SocialUnit
。我想Like
工厂选择随机存在User
和随机SocialUnit
喜欢,而不是只生成一个新的。以下代码段排序的工作原理:在factory_girl定义中指定一个随机关联对象
Factory.define :like do |f|
if User.all.count > 0
f.user User.all.sort_by{ rand }.first
else
f.association :user
end
end
它确实挑选一个随机的用户,但它似乎是随机用户只得到回升一次,因为运行此
def create_hauls
5.times do |i|
Factory(:haul)
end
end
创建了一堆喜欢的所有同一个用户。我想这是有道理的......工厂被定义一次,然后重复使用一堆。
我可以使用序列强制随机性;有没有一种方法可以在工厂定义中定义它,或者序列是实现它的最佳方式?
谢谢。
啊,谢谢。我已经用一个序列实现了一个解决方案(用'Factory.next(:random_user)'替换'如果User.all.count> 0',但回头看,这是错误的,因为它仍然要检查' User.all.count> 0'只有一次。感谢您的帮助! – unsorted 2010-08-07 17:06:11