我有一些測試失敗,因爲設置factory_girl有困難。我有一個類JOB和一個類模板。還有一個PROVIDER用戶類。作業屬於作業和模板。但是,我目前的工廠分別分配了一個提供者和模板。factory_girl新實例繼承相關類的父ID
這一個遊:
expect { post :create, job: attributes_for(:job, provider_id: provider.id) }.to change(Job,:count).by(1)
這一個工程(手動定義):
expect { post :create, job: attributes_for(:job, provider_id: provider.id, template_id: create(:template, provider_id: provider.id)) }.to change(Job,:count).by(1)
有什麼辦法來建立工廠擁有自動創建爲屬於模板供應商?
factory :job do
provider
template
end
factory :template do
template_type { Faker::Lorem.word }
template_text { Faker::Lorem.paragraph(3) }
end
這就是我曾經雖然當我通讀文件閱讀。無論如何,它仍然在打破測試...不知道它是否與工廠有關? – Marc
甚至可以調試RSpec:只需在控制器中啓動調試器創建操作並查看它的作用:創建的作業是否有效? job.valid?做這項工作。如果沒有,請檢查那裏有哪些錯誤:job.errors完成這項工作。通常最容易找到爲什麼測試失敗的方法... – Danny
謝謝...在控制器的創建方法中,「@job = Job.new(job_params)」; job_params發送的是provider_id,但不是template_id ...因爲template_id是必需的,所以失敗。應該在工廠之前(:創建)? – Marc