什么是对黄瓜factory_girl设立协会的最佳实践?
-
16-09-2019 - |
题
我通常使用此步骤设置与factory_girl记录:
Given /^the following (.+) records?:$/ do |factory, table|
table.hashes.each do |hash|
Factory(factory, hash)
end
end
和建立协会的时候,这里的身边工作,我的:
Given the following group record:
| id | name |
| 1 | foo |
And the following item records:
| name | group_id |
| bar | 1 |
| baz | 1 |
# ...
我知道这是不好的。使用IDS使得整个事情的脆性和神秘从域中人的优势。
所以,我的问题是 - 什么是设置了factory_girl协会和喜欢的一个表参数的最佳实践上述
解决方案 2
只是回答我的问题:味酸
其他提示
可以在工厂中定义多个关联。结果 如下所示:
Factory.define :item do |item|
item.name "item_name"
end
Factory.define :group do |group|
group.name "group_name"
group.items { |items| [ items.association(:item), items.association(:item) ] }
end
做一个Factory(:group)
将创建组uplet在这两个项目。
可以使用定义FactoryGirl黄瓜步骤:搜索 https://github.com/thoughtbot/factory_girl/blob/master /lib/factory_girl/step_definitions.rb
您可以设置在短短的一个黄瓜一步你的项目,你的组(S):
Given the following items exists:
| Name | Group |
| Foo | Name: Bar |
| Foam | Name: Bar |
| Food | Name: Bar |
当这样做这样,组“酒吧”的创建使用“find_or_create_by”的功能,所以在第一次调用创建组,下2个呼叫发现已经创建的组。
在这种方式,所有3个项目将有同组的“酒吧”,并根据您的需要,你可以创建任意多个分组的项目。
不隶属于 StackOverflow