【发布时间】:2016-01-10 05:04:42
【问题描述】:
我在<Rails-root>/spec/factories/models.rb 中定义了一个工厂:
FactoryGirl.define do
factory :model do
id 1
association :organization, factory: :aureso
name "Default Model"
factory :serie_1 do
id 2
name 'serie_1'
end
factory :serie_2 do
id 3
name 'serie_2'
end
factory :serie_3 do
id 4
name 'serie_3'
end
end
end
我想获取为 Class Model 定义的所有工厂。
我可以使用FactoryGirl.factories 获取所有类的工厂定义,是的,我可以使用 map/reduce 实现上述目标。但我想知道是否有任何帮助方法来获取模型类的所有定义。
【问题讨论】:
-
我真的不明白你在说什么。工厂基本上是代表某种模型的对象。 ActiveModel 模型是一个包含验证和其他普通 ruby 内容的类,它是 ActiveRecord::Base 类的一部分,模型从该类继承。如果你说的是所有工厂之间的一些共享逻辑,你可以使用特征。
-
你应该为不同的模型创建不同的工厂。删除
id属性,因为id是由数据库创建的。 -
我正在使用 fixture-builder (github.com/rdy/fixture_builder),我希望 id 是自定义的,这对排序很有用。这不会给我带来任何问题。我只是想知道在这种情况下是否有办法让所有工厂引用模型类:model(class name Model)。
标签: ruby-on-rails ruby ruby-on-rails-4 factory-bot rspec3