swa*_*pab 4 ruby ruby-on-rails ruby-on-rails-4 rspec3 factory-bot
我在中定义了一个工厂<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
Run Code Online (Sandbox Code Playgroud)
我想获得所有为Class定义的工厂Model。
我可以使用来获得所有类的工厂定义FactoryGirl.factories,是的,我可以使用map / reduce实现上述目标。但是我想知道是否有任何辅助方法来获取模型类的所有定义。
从源头可以看出,FactoryGirl当前版本的factory_girl(4.5.0)中的类没有一种便捷的方法来列出创建给定类实例的工厂。
这不是一个非常令人兴奋的答案,所以让我们以不方便的方式来做吧!FactoryGirl.factories返回a FactoryGirl::Registry,它又没有方便的方法来列出工厂,但确实有一个@items哈希,其键是工厂名称,值是的实例FactoryGirl::Factory。给定的Factory构建实例的类由返回Factory#build_class。因此,我们可以列出使用以下命令构建给定类实例的工厂
FactoryGirl.
factories.
instance_variable_get('@items').
select { |name, factory| factory.build_class == SomeClass }.
keys
Run Code Online (Sandbox Code Playgroud)
由于这取决于内部,因此将来肯定会中断。
| 归档时间: |
|
| 查看次数: |
1376 次 |
| 最近记录: |