テストの拡張

テスト ケースは合格となりますが、現在はソース コードに対して意味のあるテストを実行していないため、意味のあるテストを実行するようにテストを拡張します。2 つの空港間の距離を計算するコードを追加し、正しい距離が返されることを確認します。
  1. コードを編集する前に、必要なデータ ファイルを特定できるようにプロジェクトを構成します。
    1. COBOL エクスプローラーで、[TestAirportDemo] を選択し、[Project > Properties] を選択します。

      [Properties for TestAirportDemo] ダイアログ ボックスが表示されます。

    2. [Micro Focus > Run-time Configuration > Environment Variables] をクリックします。
    3. [Environment Variables] ページで、[Add] をクリックし、次の値を追加して [OK] をクリックします。
      • 変数:dd_airports
      • 値:..\..\AirportDemo\airports.dat
    4. [OK] をクリックします。
    単体テスト プロジェクト内のテスト ケースで、AirportDemo アプリケーションで使用されている元のデータ ファイルが使用されるようになります。
  2. COBOL エクスプローラーで、[DistanceTest.cbl] をダブルクリックします。

    プログラムがエディターに表示されます。

  3. テスト ケースのコードで errormessage という変数を使用するため、作業場所節に次のコードを追加します。
           01 errormessage pic x(200).
  4. MFU-TC-SETUP-PREFIX & TEST-DISTANCETEST エントリ ポイントにジャンプし、*> Add any other test setup code here というコメント行の後に次のコードを追加します。
               move 4 to lnk-function
               call "aircode" using
                           by value lnk-function
                           by value lnk-airport1
                           by value lnk-airport2
                           by value lnk-prefix-text
                           by reference lnk-rec
                           by reference lnk-distance-result
                           by reference lnk-matched-codes-array                       
               end-call

    これは、データ ファイルを開くコードです。

  5. 次に、MFU-TC-PREFIX & TEST-DISTANCETEST エントリ ポイントにジャンプし、最初の呼び出し文の前に次のコード行を追加します。
             move 2 to lnk-function
             move "LHR" to lnk-airport1 *> London Heathrow
             move "SEA" to lnk-airport2 *> Seattle
  6. 同じセクション内の *> Verify the outputs here というコメント行の後に次のコードを追加します。
              *> Assertions to check that the correct distance is returned
               if function numval(distance-miles) not equal 4787 
                   string "Incorrect distance in miles returned - " 
                           distance-miles delimited by size
                           x"0" delimited by size
                           into errormessage
                   end-string
                   call MFU-ASSERT-FAIL-Z using errormessage
               end-if
    
               if function numval(distance-km) not equal 4787
                   string "Incorrect distance in kilometers returned - " 
                           distance-km delimited by size
                           x"0" delimited by size
                           into errormessage
                   end-string
                   call MFU-ASSERT-FAIL-Z using errormessage
               end-if

    これは、2 つの空港間の距離の値 (マイルと km) が正しく計算されているかどうかを確認するアサーションです。計算が正しくないと失敗となります。

  7. 最後に、テスト セットアップ セクションの直後 ($end-region マーカーのすぐ前) にカーソルを移動して「testteardown」と入力し、Ctrl+Space を押してから Enter を押して、表示されたレベル 78 項目のリストから [TEST-DISTANCETEST] を選択します。

    MFU-TC-TEARDOWN-PREFIX & TEST-DISTANCETEST エントリ ポイントがプログラムに追加されます。

  8. このセクション内に次のコードを追加します。
               move 5 to lnk-function
               call "aircode" using
                           by value lnk-function
                           by value lnk-airport1
                           by value lnk-airport2
                           by value lnk-prefix-text
                           by reference lnk-rec
                           by reference lnk-distance-result
                           by reference lnk-matched-codes-array
               end-call

    これは、テスト ケースの実行後にデータ ファイルを閉じるコードです。

  9. テスト ケースを実行するには、[Micro Focus Unit Testing] ビューで、 ([Rerun Tests From Last Run]) をクリックします。

    テスト ケースが再実行されますが、失敗して次のような出力が表示されます。