次のプログラムのソース コードは付録にあります。
この例では、テキスト文字列の受信と操作に EXEC CICS 文を使用するソース プログラムを使用します。テスト ケースで文字列の値に基づいてアサーションを生成しますが、MFUPP プリプロセッサはすべての EXEC CICS 文を無視するように設定されているため、テキスト文字列を提供するにはコードのモックが必要です。
Windows:
cobol CICSHello.cbl preprocess(mfupp) cics"ignore" mock"cics" exec-report-file endp int"";
UNIX:
cob -vi -C "p(mfupp) cics(ignore) mock(cics) exec-report-file endp" CICSHello.cbl
CICSHello.mfupp-et カタログ ファイルが生成されます。このファイルには、CICSHello.cbl 内の各 EXEC CICS 文の詳細が含まれます。テストの実行に使用されるフレームワーク ファイルを生成するために、これらの詳細を次の手順で使用します。カタログ ファイルの抜粋を次に示します。3 行目以降が CICSHello.cbl 内の各 EXEC CICS 文のエントリです。
Windows:
mfurun -generate-exec-mock-snippet CICSHello.mfupp-et
UNIX:
cobmfurun -generate-exec-mock-snippet CICSHello.mfupp-et
EXEC CICS 文のモックに使用できるMFUT_CICSHELLO.cpy、MFUM_CICSHELLO.cpy、MFUPD_CICSHELLO.cpy、MFUPDS_CICSHELLO.cpy、MFULK_CICSHELLO.cpy、MFUWS_CICSHELLO.cpy の各ファイルが作成されます。
Windows:
cobol CICSHello.cbl preprocess(mfupp) cics"ignore" mock"cics" endp int"";
UNIX:
cob -vi -C "p(mfupp) cics(ignore) mock(cics)" CICSHello.cbl
このコンパイルは、すべての EXEC CICS コマンドを無視するように設定されています。
Windows:
mfurun CICSHello.int
UNIX:
cobmfurun CICSHello
ソース コードは元々 EXEC CICS 文を使用してユーザーが提供したものであるため、テストは最初は失敗するはずです。すべての EXEC CICS 文を無視するように設定しているため、テストでユーザーの応答の「モック」を作成する必要があります。これにより、プログラムを最後まで実行できるようになります。
MOCK-CID-SEND-EA84590D SECTION.
IF MFU-PP-MOCK-EXEC-CRC NOT EQUAL "EA84590D"
DISPLAY "CICS Statement changed (EA84590D)"
END-IF
MOVE "Hello" to WS-MESSAGE-R(4:)
MOVE MFU-PP-ACTION-DO-NOTHING TO RETURN-CODE
.
セクション名は CICSHelpp.mfupp-et のカタログ化されたエントリからの派生です(完全なプログラムは付録にあります)。
Windows:
cobol CICSHello.cbl preprocess(mfupp) cics"ignore" mock"cics" endp int"";
UNIX:
cob -vi -C "p(mfupp) cics(ignore) mock(cics)" CICSHello.cbl
Windows:
mfurun CICSHello.int
UNIX:
cobmfurun CICSHello
今回はテストでエラーにならないユーザー入力のモックを受け取っているため、テストは成功します。