JCL テスト ケースの例

Micro Focus 製品には、JES 対応エンタープライズ サーバー リージョンとともに使用できる単体テストおよび JCL ジョブ カードの例が用意されています。コマンド ラインでテスト ランナー構文を使用して実行すると、ジョブ カードをエンタープライズ サーバー リージョンにサブミットし、JCL ジョブの結果の戻りコードを問い合わせて、さまざまなテスト アサーションを実施する単体テストを実行できます。

この例のソース ファイルは、C:\Documents and Settings\All Users\Documents\Micro Focus\Visual COBOL\Samples\Mainframe\UnitTests\JCL_COBOL\Example1 ディレクトリにあります。

  • txtdiff.jcl:JCL ジョブ カード。このジョブは、IEBCOMPR ユーティリティを実行して、2 つのデータ ブロックを比較します。
  • MFUT_TXTDIFF1.cbl:単体テストを含むテスト プログラム。この単体テストでは、JCL 固有のメタデータを使用してジョブ カード (MFU-MD-JCL-FILE-NAME) を識別し、テストの実行後にさまざまなジョブ詳細 (MFU-MD-JCL-COND-TYPE、MFU-MD-JCL-COND-CODE、および MFU-MD-JCL-JOB-NBR) を取得してから、それに応じて MFU-MD-JCL-TESTCASE-PASSED 変数を設定して (true または false) テスト アサーションを行います。

テストを実行するには、実行中の JES 対応エンタープライズ サーバー リージョンも必要です。次の例では、ESMFUJCL というリージョン、および c:\ESMFUJCL\ ディレクトリにあるカタログを使用しています。

例を実行するには、次の手順を実行します。

  1. テスト プログラムをコンパイルします。
    cbllink -D MFUT_TXTDIFF1.cbl

    これにより、必要な実行可能テスト ファイルが生成されます。

  2. JES 対応リージョンおよび JES カタログの詳細を指定して、テストを実行します。
    mfurun -sp -es-server-name:ESMFUJCL -es-syscat:c:\ESMFUJCL\CATALOG.DAT MFUT_TXTDIFF1.dll
    単体テストで参照されている JCL ジョブが、スプール キューにサブミットされます。このジョブにはクラス A のバッチ イニシエーターが必要であるため、リージョン内でバッチ イニシエーターがまだ実行されていない場合、テスト プログラムは次の出力を表示して待機します。
    Fixture : MFUT_TXTDIFF1
     Executing test case : MFUT_TXTDIFF1
  3. 必要に応じて、クラス A のバッチ イニシエーターを起動します。

    テストが実行され、次のようなサマリーが表示されます。

    Micro Focus COBOL - mfurun Utility
    Unit Testing Framework for Windows/Native/32
    
    Fixture : MFUT_TXTDIFF1
     Executing test case : MFUT_TXTDIFF1
      JCLCM0188I J0001037 IEBCOM01 JOB  STARTED 14:38:29
      JCLCM0182I J0001037 IEBCOM01 JOB  ENDED   - COND CODE 0008 14:38:29
     Completed test case : MFUT_TXTDIFF1 - Passed
     Generating report : MFUT_TXTDIFF1-report.txt
    
    Test Run Summary
     Overall Result           Passed
     Tests run                1
     Tests passed             1
     Tests failed             0
     Total execution time     4255

    テストの実行中、生成されたレポート (MFUT_TXTDIFF1-report.txt)を COBOL プログラムが読み取り、サマリーに示されているテスト アサーションが行われたことがわかります。