DUnit テストを DUnitX に変換する方法
DUnitX の概要 への移動
DUnit から DUnitX への変換は比較的簡単です。DUnit.DUnitCompatibility.pas には、すべての Check(X) メソッドを備えた TTestCase クラスが定義されています。これらのメソッドは非推奨であると明示されており、新しい Assert メソッドに処理を委譲します。
DUnit コードを DUnitX に変換するには、次の手順に従います。
- uses 句で、
TestFramework
を- 次のコードに置き換えます。
DUnitX.TestFramework,DUnitX.DUnitCompatibility;
- 登録を次のコードに変更します。
TDUnitX.RegisterTestFixture(TYourTestClass)
スタック トレース サポートの有効化
DUnit コードを使って、DUnitX のスタック トレース サポートを有効にすることができます。そのために、DUnitX には DUnitX.StackTrace.inc ファイルがあります。使用するプロバイダの定義のコメントを解除する必要があります。独自のスタック トレース プロバイダを用意する場合は、IStacktraceProvider を実装し、それを次のコードで登録します。
TDUnitXIoC.DefaultContainer.RegisterType<IStackTraceProvider,TYourProvider>;
DUnitX と DUnit の違い
DUnitX の用語は DUnit とは異なります。両者の違いを次の表に示します。
機能 | DUnit | DUnitX |
---|---|---|
基底テスト クラス |
TTestCase |
なし |
テスト メソッド |
可視性が published |
可視性が published、または [Test] で修飾 |
フィクスチャ セットアップ メソッド |
該当なし |
[SetupFixture] で修飾、またはコンストラクタ |
テスト セットアップ メソッド |
基底クラスから継承した Setup をオーバーライド |
[Setup] で修飾 |
テスト ティアダウン メソッド |
基底クラスから継承した Teardown をオーバーライド |
[TearDown] で修飾 |
名前空間 |
登録パラメータ(文字列)を通じて |
ユニット名(ピリオドで名前空間を区切る) |
データ駆動型テスト |
該当なし |
[TestCase(<パラメータ>)] で修飾 |
アサーション |
Check(X) |
Assert クラス |
コンテナ(IEnumerable<T>)に関するアサーション |
手動 |
Assert.Contains、Assert.DoesNotContain、Assert.IsEmpty |
正規表現を使ったアサーション |
該当なし |
Assert.IsMatch(XE2 以降) |
スタック トレースのサポート |
Jcl |
Jcl、madExcept 3、madExcept 4、EurekaLog 7 |
メモリ リークの検査 |
FastMM4 |
FastMM4(開発中) |
IoC コンテナ |
Spring などを使用 |
簡単な IoC コンテナが組み込み |
コンソールのログ記録 |
組み込み |
組み込み(サイレント モードまたは詳細表示モード) |
XML ログ記録 |
組み込み(独自形式) |
組み込み - NUnit 互換の XML コードを出力 |