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