如何在嵌套工厂中创建条件属性
How to create conditional attribute in nested factory
我有几家工厂,但我需要传递一个论点或特征,但我不确定如何传递。仅当 condition_is_met.
时,我才需要在哈希中创建一个额外的字段
sequence :assets do |n|
assets = []
count = (n % 3) + 1
while count > 0
count -= 1
i = (n + count) % asset_compound_ids.length
compound_id = asset_compound_ids[i]
asset_id, blob_name = compound_id.split(/,/)
assets << {id: asset_id.to_i, blob: {name: blob_name, url: ASSET_ID_2_URL[compound_id]}}
if condition_is_met
assets[index][:blob][:asset_duration_ms] = 34564224
end
end
assets
end
factory :layout do
assets
end
factory :event do
layout
end
我们可以将条件传递给序列吗?
像这样给工厂添加回调怎么样?
factory :layout do
assets
after(:build, :stub) do
next unless condition_is_met
assets[index][:blob][:asset_duration_ms] = 34564224
end
结束
我有几家工厂,但我需要传递一个论点或特征,但我不确定如何传递。仅当 condition_is_met.
时,我才需要在哈希中创建一个额外的字段 sequence :assets do |n|
assets = []
count = (n % 3) + 1
while count > 0
count -= 1
i = (n + count) % asset_compound_ids.length
compound_id = asset_compound_ids[i]
asset_id, blob_name = compound_id.split(/,/)
assets << {id: asset_id.to_i, blob: {name: blob_name, url: ASSET_ID_2_URL[compound_id]}}
if condition_is_met
assets[index][:blob][:asset_duration_ms] = 34564224
end
end
assets
end
factory :layout do
assets
end
factory :event do
layout
end
我们可以将条件传递给序列吗?
像这样给工厂添加回调怎么样?
factory :layout do
assets
after(:build, :stub) do
next unless condition_is_met
assets[index][:blob][:asset_duration_ms] = 34564224
end
结束