EXEC 文を含むプログラムのモックおよびスタブ

EXEC 文 (EXEC CICS や EXEC SQL など) を含むプログラムは、テストが難しい場合がよくあります。これらの文をサポートしてテスト実行を継続するには、追加のオーバーヘッドが必要になります。ただし、MFUPP プリプロセッサでサポートを有効にして、テストの実行時に EXEC 文を無視できます。

CICS プログラムを例に挙げると、EXEC CICSdfheiblk コピーブック文、および DFH マクロを独自のモック コードに置き換えることができます。通常このコードは、複雑なコードまたはプロセスを、テストに必要な要素をテスト ケースに提供することを目的とする単純化されたコードに置き換えます。

このサポートは、MOCK および CICS または SQL 指令を使用して有効にします (現在、EXEC SQL サポートは完全には実装されていないことに注意してください)。また、EXEC-REPORT-FILE 指令を使用すると、ソース コード内の EXEC 文をカタログ化することもできます。このカタログ ファイルを使用して、モック コードのスタブを形成するコードのスニペットを生成できます。

スニペット (.cpy ファイル) は、テスト ランナーの generate-exec-mock-snippet オプションを使用して生成します。このオプションには指定できるパラメーターが多数あり、これらのパラメーターによって、これらのファイル内のスタブ コードに追加される情報が決まります。

他のモック コードと同様に、EXEC 文が出現するたびに、コントローラー (MFU-MD-EXEC-CONTROLLER) で実行フローをスタブ コードに渡す必要があります。カタログ ファイルを使用してスタブ コードを生成する場合、コントローラーは MFUM_<program-name>.cpy ファイルで作成します。このファイルには、(スニペットの生成時に指定したオプションに応じて) ソース コード内の各 EXEC 文に対応する多数のセクションも含まれます。

ヒント: カタログ ファイル内の EXEC 文とモック コードには、それぞれ固有の参照コードが設定されます。これらの文/セクションに関してわかりやすい参照を使用したい場合は、独自の識別子を指定できます。識別子を指定するには、ソース コードで、EXEC 文の前にコメント行を挿入してください。次に例を示します。
    *> MFUPP-CID MY-CICS-RETURN
    EXEC CICS RETURN
    END-EXEC

    *> MFUPP-SID MY-SQL-COMMIT
    EXEC SQL COMMIT
    END-EXEC

(EXEC 文のタイプによってプレフィックスがどのように異なるかに注意してください。)(EXEC-REPORT-FILE 指令を使用して) ファイルを次にカタログ化する際に、テスト全体で新しい識別子が使用されます。

上記の機能を使用して CICS プログラムのモックを作成しテストする方法の例については、「CICS プログラムのモックへの MFUPP の使用」を参照してください。