ruby-on-rails – 使用FactoryGirl创建具有所需关联的对象
发布时间:2020-12-17 02:44:27 所属栏目:百科 来源:网络整理
导读:我正在寻找有关如何在处理具有许多必需关联对象的对象时有效使用 ruby gem“FactoryGirl”的建议. 例如,假设我的班级之间有以下关系. class A ActiveRecord has_many Bendclass B ActiveRecord belongs_to A has_many Cendclass C ActiveRecord belongs_to B
我正在寻找有关如何在处理具有许多必需关联对象的对象时有效使用
ruby gem“FactoryGirl”的建议.
例如,假设我的班级之间有以下关系. class A < ActiveRecord has_many B end class B < ActiveRecord belongs_to A has_many C end class C < ActiveRecord belongs_to B end 现在,如果我想为我的C控制器编写测试用例,我必须在这个链中创建所有对象.现在,这就是我在工厂里做的事情.但有更好的方法吗? 解决方法
如果您的工厂设置如下:
FactoryGirl.define do factory :library do name "Chicago Public Library" street_address "123 Morgan St." end factory :book do title "A Great Book" author "Mandy Yeats" association :library end factory :page do page_number 123 association :book end end 每当您在测试中创建:page的实例时,FactoryGirl还将创建:book和:library的实例.您不需要先创建库和书.如果您创建:book,则还将为测试创建a:库.您可以在测试中使用这些实例,如下所示: page.book.library.name # after using FactoryGirl.create(:page) page.book.author book.library.street_address # after using FactoryGirl.create(:book) 这是我找到的最直接的方法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |