NUnit BDL スクリプトの例

スクリプトの例

以下のスクリプトは、NUnit Money をインポートし、BagMultiplyBagNegate、および BagSimpleAhdd の 3 つのメソッドを選択することによって生成されたものです。

transaction TInit
var
  sFileName : string;
begin
  DotNetSetOption(DOTNET_OPT_REDIRECT_CONSOLE, 1);
  // ============================================== 
  // Unit Test TestClass Information:
  // Used Framework: NUnit Test Framework
  // Initialize method: SetUp
  // Class contains 21 test methods!
  // ==============================================
  GetDataFilePath("nunitmoneysample.dll", sFileName);
  ghTestObj := DotNetUnitTestLoadObject(sFileName, "NUnit.Samples.Money.MoneyTest", "NUnit.Samples.Money.MoneyTest");
end TInit;

transaction TMain
begin
  // BagMultiply
  DotNetUnitTestCallMethod(ghTestObj, "BagMultiply", "BagMultiply");
  // BagNegate
  DotNetUnitTestCallMethod(ghTestObj, "BagNegate", "BagNegate");
  // BagSimpleAdd
  DotNetUnitTestCallMethod(ghTestObj, "BagSimpleAdd", "BagSimpleAdd");
end TMain;

transaction TEnd
begin
  DotNetUnitTestFreeObject(ghTestObj, "NUnit.Samples.Money.MoneyTest");
end TEnd;

DotNetUnitTestLoadObject は、NUnit アセンブリをロードして、このテスト クラスのインスタンスを作成します。 このテスト クラスには、グローバルの初期化関数が実装されています (名前は TestFixtureSetup - ClassInitialize)。この関数は、オブジェクトが作成された直後に呼び出されます。

TEnd トランザクション内の DotNetUnitTestFreeObject は、テスト オブジェクトへの参照を解放します。 このテスト クラスには、グローバルの後処理 (tear-down) 関数が実装されています (名前は TestFixtureTearDown - ClassCleanup)。この関数は、オブジェクトが解放される前に呼び出されます。

DotNetUnitTestCallMethod は、NUnit Microsoft Unit Test Engine と同様に、TestMethod を呼び出します。 SetUp - TestInitialize メソッドが実装されている場合は、テスト メソッドが呼び出される前に、このメソッドが呼び出されます。

TearDown - TestCleanup メソッドが実装されている場合は、テスト メソッドが呼び出された後に、このメソッドが呼び出されます。

例外が発生する可能性があるテスト メソッド (名前は ExpectedException) は、実際に例外が発生したときにのみ、成功と見なされます。

テスト メソッドによって、エラー (コンソール以外) に情報が書き込まれた場合、その情報は TrueLog 内で見ることができます。 個々の要素は、DotNetUnitTestCallMethod の子ノードとして記録されます。

予期しない例外についても同様です。 スタック トレースと例外のメッセージは、TrueLog に記録されます。

タイマ

元からある DotNet API 呼び出しと、新しい DotNetUnitTest API 呼び出しに、新たなオプション タイマ パラメータが導入されました。 このパラメータを指定すると、コンストラクタ、テスト メソッド、セットアップ メソッド、および後処理メソッドの実行タイマが測定されます。 上の例では、次のような測定結果が得られます。

  • コンストラクタ:NUnit.Sample.Money.MoneyTest
  • メソッド:BagMultiplyBagNegateBagSimpleAdd
  • セットアップ メソッド: BagMultiply_SetupBagNegate_SetupBagSimpleAdd_Setup