我一直在RSPEC中使用工廠女孩,但本月我的任務是將黃瓜故事實施到我們的測試套件中。我想我可能有一個我不太確定的問題。將一些FactorGirl模型與一個主公司的模型關聯起來
我們的'主'賬戶模式被稱爲'公司'。用戶,僱員等等都屬於這一點。有些通過代表團直接通過f/k他人。我們以前使用工廠女孩的方式設置了許多與Factory女孩搭配的模型。
即在 'spec_helper.rb'
@grade_system = FactoryGirl.create(:grade_system)
@asset_size = FactoryGirl.create(:asset_size)
@asset_size.grades.create!(FactoryGirl.attributes_for(:grade))
@company = FactoryGirl.create(:company, :asset_size => @asset_size, :grade_system => @grade_system)
這是相當愚蠢的海事組織。
當試圖修復具有「屬性已定義:asssociation」的適當關聯的工廠時,我總是收到錯誤。我猜測是因爲用屬於員工的工廠創建的用戶,都是由擁有關聯公司的工廠構建的,正在導致衝突。但這不是唯一的例子。我想我的問題是,這種情況的最佳做法是什麼。我覺得如果我可以把一家公司分出來,分配給所有需要它的工廠,這可能會起作用,或者將所有適當的協會分配到公司工廠中,但是不能用FactoryGirl建立一個用戶.build(:用戶)。 ....或者我只是錯過了關於協會如何工作的觀點?
FactoryGirl.define do
factory :company do
sequence(:name) { |n| "Company#{n}" }
sequence(:subdomain) { |n| "subdomain#{n}" }
first_time_setup false
non_exempt_multiplier 1.2
exempt_multiplier 1.2
executive_multiplier 1.2
primary_contact_first_name 'Jarrett'
primary_contact_last_name 'Green'
primary_contact_email '[email protected]'
primary_contact_phone '(555) 555-5555'
hours_considered_part_time 30
hours_considered_full_time 40
association :industry
association :grade_system
association :asset_size
end
end
######################################
FactoryGirl.define do
require 'faker'
factory :employee do
association :company
association :position
association :branch
first_name Faker::Name.first_name
last_name 'Smith'
pay_basis 'salary'
current_salary 10000.00
date_in_position (Date.today)
sequence(:internal_id) { |n| n }
user
end
end
############################################################
FactoryGirl.define do
factory :user do
association :company
sequence(:login) {|l| "user#{l}@test.com"}
sequence(:first_name) {|fn| "UserFirstName#{fn}"}
sequence(:last_name) {|ln| "UserLastName#{ln}"}
password 'thisisthepassword'
password_confirmation 'thisisthepassword'
end
end
您能否展示如何爲Commpany,AssetSize和GradeSystem定義工廠? – mguymon
剛剛與我認爲是相關的工廠編輯。 – Jarrett