DUnitXのテストの書き方¶
テストクラスの自動登録¶
ITestRunner#UseRTTIプロパティをTrueにすると、実行時型情報を使用してテストクラスを自動的に登録できます。
// 自動的にテストクラスが登録される。
runner.UseRTTI := True;
// TDUnitX.RegisterTestFixture関数でテストクラスを登録する。
runner.UseRTTI := False;
テストクラス¶
テストクラスには[TestFixture]属性をつけます。
TTestCaseクラスを継承する必要はありません。
[TestFixture]
TestTCalc = class(TObject)
end;
フィクスチャセットアップメソッド¶
フィクスチャセットアップメソッドには[SetupFixture]属性をつけます。
テストクラスのテストが実行される前に一度だけ実行されます。
DUnitにこの機能はありませんでした。
[TestFixture]
TestTCalc = class(TObject)
public
[SetupFixture]
procedure フィクスチャセットアップ;
end;
フィクスチャティアダウンメソッド¶
フィクスチャティアダウンメソッドには[TeardownFixture]属性をつけます。
テストクラスのテストが実行された後に一度だけ実行されます。
DUnitにこの機能はありませんでした。
[TestFixture]
TestTCalc = class(TObject)
public
[TeardownFixture]
procedureフィクスチャティアダウン;
end;
テストセットアップメソッド/テストティアダウンメソッド¶
テストセットアップメソッドには[Setup]属性をつけます。
テストティアダウンメソッドには[TearDown]属性をつけます。
メソッドの名前を自由につけられるようになりました。
[TestFixture]
TestTCalc = class(TObject)
public
[Setup]
procedure 前処理;
[TearDown]
procedure 後処理;
end;
テストメソッド¶
[Test]属性¶
テストするメソッドには[Test]属性をつけます。
メソッドの名前を自由につけられるようになりました。
[TestFixture]
TestTCalc = class(TObject)
public
[Test]
procedure GetNameメソッドのテスト;
end;
[Test]属性の引数¶
[Test]属性は引数に真偽値をとります。
引数が偽(False)のとき、テストは実行されません。
[TestFixture]
TestTCalc = class(TObject)
public
[Test(False)]
procedure 実行されないテスト;
end;
TestCase属性¶
TestCase属性は引数をとります。
第1引数はケース名、第二引数はテストメソッドの引数になります。
[TestCase('TestA', '8,2,10')]
procedure TestAdd(Value1, Value2, _Result: Integer);
TestCase属性の繰り返し¶
TestCase属性を複数記述できます。
[TestCase('TestA', '0,0,1')]
[TestCase('TestB', '8,2,10')]
[TestCase('TestC', '0,1,1')]
procedure TestAdd(Value1, Value2, _Result: Integer);
条件を変えてテストが出来ます。
引数の区切り文字¶
TestCase属性の引数はカンマで区切ります。
[TestCase('ケース名', '引数,引数,…')]
第3引数で区切り文字を指定できます。
[TestCase('TestB', '3/4/-1','/')]
procedure TestSub(Value1, Value2, _Result: Integer);
引数にカンマを含めたいときは区切り文字を指定すると便利です。