#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テストに統合する方法が本当に必要です。