【发布时间】:2011-12-17 23:16:57
【问题描述】:
我有以下出厂设置:
FactoryGirl.define do
factory :country do |f|
f.name "USA"
f.country_code "USA"
f.currency_code "USD"
end
factory :region do |f|
f.name "East Coast"
f.country {Country.first}
end
factory :state do |f|
f.name 'CA'
f.region {Region.first}
f.country {Country.first}
end
end
我想在地区和州工厂做的是检查国家/地区的数据库中是否已经存在一个条目,如果是,则使用该条目,并且只有在没有找到条目时才创建一个新模型。
这是我想到的一个示例,但不确定如何创建:
factory :state do |f|
f.name 'CA'
f.region {Region.first || Factory(:region}
f.country {Country.first || Factory(:state}
end
我想这样做的原因是将条目注入到我的数据库中,这将填充表单选择字段 & 以便我可以使用 cucumber 进行测试。
【问题讨论】:
-
你为什么要这样做?我想不出这样做的充分理由
-
因为我的数据库模式状态无法保存,除非地区和国家条目已经存在。我需要至少 3 个州模型进行测试,但只想为地区和国家插入一行。
标签: ruby-on-rails ruby unit-testing factory-bot