プログラムへのテスト コード挿入への MFUPP の使用

例 1

次の例を使用して、単体テスト コードをソース コードに挿入し、Micro Focus Unit Testing Framework で実行します。このテストでは、テスト コード内で指定されているハードコーディングされたデータを使用します。

この例は、付録にある 2 つのファイルで構成されています。

  • Fizzbuzz.cbl - テスト対象のセクションを含む COBOL プログラム。
  • MFUPD_Fizzbuzz.cpy - COBOL プログラムに挿入されるエントリ ポイントを含むコピーブック。
  1. MFUPP プリプロセッサを使用して Fizzbuzz.cbl をコンパイルします。
    cobol Fizzbuzz.cbl int"" preprocess"mfupp" verbose endp;
  2. MFUPD_Fizzbuzz.cpyFizzbuzz.int と同じ作業ディレクトリにあることを確認します。
  3. Fizzbuzz.intMicro Focus Unit Testing Framework で実行します。
    mfurun Fizzbuzz.int

    プログラムの実行時に、MFUPD_Fizzbuzz.cpy 内のエントリ ポイントにあるコードが実行され、元のソース コードの Process-Number セクションが実行されて、独自のデータに対してテストされます。

例 2

次の例を使用して、データ駆動型単体テスト コードをソース コードに挿入します。この例では、データ ファイルから作業場所節にフィールドを挿入するための追加のコピーブックが必要で、参照先の .csv ファイルの値を使用してテスト コードを反復処理します。

この例は、付録にある 4 つのファイルで構成されています。

  • Fizzbuzz.cbl - テスト対象のセクションを含む COBOL プログラム。
  • MFUWS_Fizzbuzz.cpy - データ ファイル フィールドの作業場所定義を含むコピーブック。
  • MFUPD_Fizzbuzz.cpy - COBOL プログラムに挿入されるエントリ ポイントを含むコピーブック。
  • fizzbuzz_data.csv - テスト対象のコードで実行される値を含むデータ ファイル。
  1. MFUPP プリプロセッサを使用して Fizzbuzz.cbl をコンパイルします。
    cobol Fizzbuzz.cbl int"" preprocess"mfupp" verbose endp;
  2. MFUPD_Fizzbuzz.cpyMFUWS_Fizzbuzz.cpy、および fizzbuzz_data.csv がすべて Fizzbuzz.int と同じ作業ディレクトリにあることを確認します。
  3. Fizzbuzz.intMicro Focus Unit Testing Framework で実行します。
    mfurun -verbose:true Fizzbuzz.int

    プログラムの実行時に、MFUPD_Fizzbuzz.cpy 内のエントリ ポイントにあるコードが何度も実行され (fizzbuzz_data.csv の値ごとに 1 回)、そのたびに元のソース コードの Process-Number セクションが実行されます。