0

#mapper と呼ばれるメソッドのために、以前に書いた単純な ruby​​ テストを RSpec テストに変換する必要があります。

この方法は非常にデータ駆動型であり、CSV と YAML の外部データ ファイルの組み合わせに格納された大量の入力および出力データが必要でした。

現在、これは Ruby のスタンドアロン環境ですが、まもなく Rails プロジェクトに統合される予定です。

ここにいくつかの擬似コードがあります:

# current test algorithm
inputs = data_load :inputs
meta_maps = data_load :meta_maps
meta_maps.each do |meta_map_name, meta_map|
  outputs = data_load "outputs_#{meta_map_name}"        
  outputs.each do | output |
    next if output_data_not_available(output)
    test_name = output[:test_name]
    input = inputs[test_name]

    test test_name, output, mapper(input, meta_map)

  end
end

このdata_load関数は、CSV または YAML ファイルをロードし、同様の名前のハッシュとして返します。

このtest関数は、現在のマッパー関数を呼び出し、input返されたものを現在のものと比較し、outputを使用して結果をログに記録しtest_nameます。

本当の問題は、外部ファイルを使用しなければならないことです(仕様ごとに-そしてそれらは私の管理下にありません)

私はRSpecを初めて使用しますが、基本的な理解はしていますが、フィクスチャやファクトリタイプのセットアップを使用したことがなく、CSVファイルとYAMLファイルを可能な限り「RSpecの方法」でRSpecテストに統合する方法が本当に必要です。

4

1 に答える 1