VDMUnitの使い方

ツール利用方法の目次に戻る

本ページの内容はあくまで著者がまとめた「簡単に触ってみる第一歩」(Overture IDE 1.1.0 RC1,VDMTools 8.3.1で確認)ですので,詳細なツール仕様や最新の情報については,各ツールの公式Webサイト・マニュアル等をご確認下さい.

大きな画像は縮小しており,クリックすると大きな画像が表示されます.

VDMUnitの取得・取り込み

VDMUnitはVDM++のみで記述され実行可能なフレームワークなので,入出力ライブラリのようにツールに依存したものではありません.各ツールでの取り込み方法は下記となります.

VDMUnitの利用

通常のXXXUnitフレームワークと同様,下記のような特徴を持ちます.

このため,簡単には下記のような手順で用いることになるでしょう.

TestCaseクラスを継承し,setUp, runTest, tearDownの三つの操作を通して各テストケースを定義する.一般にはsetUpにて必要なインスタンス変数を生成し初期化を行い,runTestにて適宜assertTrueまたはasssertFalseによるアサーションをはさみつつテスト動作を行います.tearDownはたいていの場合特に必要ないかもしれません.

class TestCase01 is subclass of TestCase

operations 

public TestCase01 : () ==> TestCase01
TestCase01() ==
  TestCase("T01");

public setUp : () ==> ()
setUp() == (
  ...
);

public runTest : () ==> ()
runTest() == (
  ...
);

public tearDown : () ==> ()
tearDown() == skip;

end TestCase01

TestSuiteクラスのインスタンスを作成し,それに対して作成したTestCaseクラスをaddTest操作を通して登録し,その後run操作を通して実行するような操作を定義します.

class TestRun

operations

public static run : () ==> ()
run() == (
  dcl suite : TestSuite := new TestSuite("Event Manager Test"),
      result : TestResult := new TestResult();
  result.addListener(new PrintTestListener());
  suite.addTest(new TestCase01("T01 - normal execution"));
  ...
  suite.run(result);
);

end TestRun

必要に応じデフォルトのPrintTestListenerクラスを変更し,各テストケースの結果が出力される方法を変更する.また,TestResultクラスに含まれる結果(上記では一時変数result)を取り出して適宜出力する.

ツール利用方法の目次に戻る