FactoryBot:如何在 skip_create 工厂中使用瞬态来指定内部工厂中的属性?
FactoryBot: how to use transient in skip_create factory to specify properties in an internal factory?
我有以下工厂,里面有 _skip_create_,并且在创建时还调用了另一个工厂,我试图在该工厂上指定一个特定的 UUID。示例:
FactoryBot.define do
factory :experiment do
transient { order nil }
env_array = %w[prod dev test]
uuid { SecureRandom.uuid }
name { 'some name' }
skip_create
initialize_with do
env_array.each_with_index do |env, idx|
FactoryBot.create(:environment, uuid: 'b5c096d5-479a-4693-ac14-9cea7dfd045c') if order.eql? 'first'
end
end
end
end
问题是,我无法让 order 生效。我得到:
ArgumentError:特征未注册:顺序
如何在调用工厂时指定 order?
那是因为你漏了花括号{}
FactoryBot.define do
factory :experiment do
transient do
order { nil }
end
....
end
end
我有以下工厂,里面有 _skip_create_,并且在创建时还调用了另一个工厂,我试图在该工厂上指定一个特定的 UUID。示例:
FactoryBot.define do
factory :experiment do
transient { order nil }
env_array = %w[prod dev test]
uuid { SecureRandom.uuid }
name { 'some name' }
skip_create
initialize_with do
env_array.each_with_index do |env, idx|
FactoryBot.create(:environment, uuid: 'b5c096d5-479a-4693-ac14-9cea7dfd045c') if order.eql? 'first'
end
end
end
end
问题是,我无法让 order 生效。我得到:
ArgumentError:特征未注册:顺序
如何在调用工厂时指定 order?
那是因为你漏了花括号{}
FactoryBot.define do
factory :experiment do
transient do
order { nil }
end
....
end
end