COBOL製品技術情報(FAQ)


MFUnit テストコードの記述例

あるテスト(ここでは test1 とします)を実装する際のテスト構成要素は以下となります。

構成要素節名称省略可否
テスト実行前の処理MFU-TC-SETUP-PREFIX & "test1"省略可
実際のテストと結果検証MFU-TC-PREFIX & "test1"省略不可
テスト終了後の処理MFU-TC-TEARDOWN-PREFIX & "test1"省略可


簡単な例を用いて、実際の記述を確認します。
単純な足し算を行う下記のプロシージャーをテスト対象とします。

       procedure division using val1, val2, rst.
           compute rst = val1 + val2.
           goback.


上記プロシージャーへのテストコード例は以下になります。

       entry MFU-TC-PREFIX & TEST-TESTADD.
           move 12345 to val1.
           move 67890 to val2.
           call "Add" using val1, val2, rst

           move 80235 to expected.
           if expected = rst then
               goback returning MFU-PASS-RETURN-CODE
           else
               string
                   "expected " expected
                   ", but " rst
                   into msg
               end-string
               call MFU-ASSERT-FAIL-Z using msg 
           end-if.
       .

       entry MFU-TC-SETUP-PREFIX & TEST-TESTADD.
       perform InitializeLinkageData
           goback returning 0
       .

       entry MFU-TC-TEARDOWN-PREFIX & TEST-TESTADD.
           goback returning 0
       .

1 ~ 17 行目で、テスト実行、および、検証を行っています。テストが成功した場合、MFU-PASS-RETURN-CODE を戻し、失敗した場合は MFU-ASSERT-FAIL-Z プロシージャー呼出しによるアサーションエラーを戻している事が分かります。 なお、失敗時に MFU-FAIL-RETURN-CODE を戻すこともできますが、この場合、エラー原因を別途出力する必要があります。
19 行目以降は、テスト実行時の前処理、後処理の記述例となります。

その他情報については、製品マニュアルトップより、[プログラミング] > [Micro Focus Unit Testing Framework] > [IDE での単体テスト] > [テストの作成] > [テストの記述] を参照ください。

なお、上記は基本的なテスト記述例であり、データ駆動型テストなど、他のテスト方法もございます。詳しくは、マニュアルトップより [Getting Started] > [ネイティブ COBOL チュートリアル] > [Eclipse IDE によるネイティブ COBOL の単体テスト] を参照してください。