FactoryBot 获取工厂的可用特征

iba*_*alf 7 ruby factory ruby-on-rails factory-bot

是否有 FactoryBot 方法或某种方式来获取工厂的可用特征?

前任:

FactoryBot.define do
  factory :address, class: Address do
    trait :in_california do
      state 'CA'
    end

    trait :in_new_york do
      state 'NY'
    end

    trait :in_florida do
      state 'FL'
    end
end
Run Code Online (Sandbox Code Playgroud)

我希望能够以编程方式获取特征,例如 FactoryBot.get_traits (:address) ,它将返回为该工厂定义的特征数组,在本例中是

["in_california", "in_new_york", "in_florida"]
Run Code Online (Sandbox Code Playgroud)

这样是不是更清楚了?

Kee*_*ggs 9

我相信您想要的是以下内容:

FactoryBot.factories[:address].defined_traits.map(&:name)
#=> ["in_california", "in_new_york", "in_florida"]
Run Code Online (Sandbox Code Playgroud)