如何在嵌套工厂中创建条件属性

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

结束