[英]FactoryGirls multiple associations
我很難思考這一點。 我是FactoryGirl的新手,所以可能在某處清楚地解釋了這一點,對於這種情況,我深表歉意。 這當然不是一個獨特的問題,也許我的Google技能還沒有達到標准。
我正在處理訂單,這些訂單屬於類別並且屬於客戶。 我正在嘗試建立一個下了5個訂單的客戶,但是在嘗試建立類別(要求一個唯一的名稱)時,我不斷拋出獨特的錯誤。
RSpec.feature "Customer management", :type => :feature do
scenario "Customer with orders has order history" do
customer = create(:customer, :with_5_completed_orders)
visit customer_path(customer)
expect(page).to have_content("Recent Orders")
end
end
FactoryGirl.define do
factory :customer do
...
trait :with_5_completed_orders do
after :create do |customer|
create_list(:order_line, 5, :completed, :customer => customer)
end
end
end
end
FactoryGirl.define do
factory :order_line do
....
product
....
end
end
FactoryGirl.define do
factory :product do |f|
....
category
....
end
end
FactoryGirl.define do
sequence :category_name do |n|
"category-#{n}"
end
factory :category do
name { generate(:category_name) }
end
end
如果我理解正確,則類別名稱唯一性有問題。
您可以使用序列通過FactoryGirl生成唯一的類別名稱:
sequence :category_name do |n|
"category-#{n}"
end
factory :category do
name { generate(:category_name) }
end
關於序列的 FactoryGirl文檔也值得一讀。
如果您打算重復使用同一類別兩次,則可以先創建一個類別,然后按所有順序重復使用它:
trait :with_5_completed_orders do
after :create do |customer|
cat = generate(:category)
create_list(:order_line, 5, :completed, customer: customer, category: cat)
end
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.