2016-04-12 9 views
1

私はいくつかの工場を持っていますが、引数や特性を渡す必要がありますが、どうすればよいかわかりません。私は、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 

条件をシーケンスに渡すことはできますか?

答えて

1

このような工場へのコールバックの追加はどうですか?

factory :layout do 
    assets 
    after(:build, :stub) do 
    next unless condition_is_met 
    assets[index][:blob][:asset_duration_ms] = 34564224 
    end 

エンド

関連する問題