データ駆動型単体テスト

データ駆動型テストは、ソースから読み取った値を同じテストに渡すデータ テストに適したテストの一種です。

Micro Focus Unit Testing Framework は、カンマ区切り値 (CSV) 形式のデータ ソースに接続する場合のデータ駆動型テストをサポートしています。

メタデータのエントリ ポイントでデータ ソース記述子 MFU-MD-TESTDATA を指定することで、データ ソースを従来の単体テストに組み込むことができます。次に例を示します。

ENTRY "MFUM_MYTESTCASE".
   move "csv:MyCSVSource.csv" to MFU-MD-TESTDATA.

テスト ケースを実行すると、データ ソース内の選択されたデータの行ごとに 1 回テストが実行されます。このため、データ駆動型固有のテスト要素として、データ駆動型テスト セットアップおよびデータ駆動型テスト ティアダウンという 2 つの追加要素があります。これらは従来のセットアップおよびティアダウンの要素 (引き続き使用可能) に似ていますが、従来の要素は選択した各行のテスト ケースの実行前と実行後に実行されるのに対し、新しい要素はテスト実行ごとに 1 回だけ実行されます。これらの特定のセクションは、データ ソースの接続/切断など、テスト実行ごとに 1 回だけ実行すればよい処理に役立ちます。詳細については、「テスト フィクスチャの要素」を参照してください。

MFU-MD-DD-CSV-FILT-COND メタデータを使用し、フィルター処理条件によって列値のいずれかに基づいて行を選択することで、どの行をテストするかを制御できます。次に例を示します。
move "Surname = Jones" to MFU-MD-DD-CSV-FILT-COND
コマンド ライン テスト ランナー構文の -csv-line-filter オプションを使用すると、ソース内の 1 つの行に対してテスト ケースを選択的に実行することもできます。

テスト ケースでデータを使用するには、列ヘッダーに対応する外部 COBOL 項目を作業記憶域で定義します。たとえば、EarnedPoints という名前の列のデータを定義して使用するには、COBOL 項目を次のように定義します。

01 mfu-dd-EarnedPoints is MFU-DD-VALUE external.

その後、他のデータ項目の場合と同じように、その項目をソース コードで使用できます。

テストできるデータのサイズには制限があります。「Micro Focus Unit Testing Framework での制約事項」を参照してください。ただし、これらの制限の一部については、複雑で長いフィールド データを外部ファイルに保存することで回避できます。.csv ファイルで外部データを参照するには、セルで @file-name の形式でファイルを指定し、テストの実行前にライブラリ ルーチンの MFU_GET_FILE または MFUGETF を使用してそのファイルをメモリにロードします。テストの実行時は、参照された外部ファイルの内容がセルに含まれているものとして処理されます。

データ駆動型テストの実用的な例については、「データ駆動型テスト ケースの例」セクションを参照してください。