テストの効率化をねらって、DUnit を試してみたので、DUnit テストプロジェクト作成の手順をまとめてみた。
- DUnit をダウンロードする。
http://dunit.sourceforge.net/ - テストプロジェクトを作成する。
ファイル|新規作成|アプリケーション - フォームを削除する。
- ユニットを追加する。:ファイル|新規作成|ユニット
- 下記のようにプロジェクトソースを編集する
- uses 節に以下の 2 ユニットを追加する。
TestFramework, GUITestRunner
- 以下の 3 行を削除する
Application.Initialize; Application.CreateForm(TForm2, Form2); Application.Run;
- 以下の行を追加する
GUITestRunner.runRegisteredTests;
- 編集後、下記のようになる。
program UnitTest; uses Forms, TestFramework, GUITestRunner, UUnitTest1 in 'UUnitTest1.pas'; {$R *.res} begin GUITestRunner.runRegisteredTests // Application.Initialize; // Application.CreateForm(TForm1, Form1); // Application.Run; end.
- uses 節に以下の 2 ユニットを追加する。
- 下記のようにテストユニットを作成する
unit UUnitTest1; interface uses TestFramework, GUITestRunner; type TTestUnit1= class(TTestcase) protected procedure SetUp; override; procedure TearDown; override; published procedure Case_TestOK1; virtual; procedure Case_TestOK2; procedure Case_TestNG1; virtual; end; implementation procedure TTestUnit1.SetUp; begin end; procedure TTestUnit1.TearDown; begin end; procedure TTestUnit1.Case_TestNG1; begin check(false, 'TTestUnit1error'); end; procedure TTestUnit1.Case_TestOK1; begin check(true, ''); end; procedure TTestUnit1.Case_TestOK2; begin check(true, ''); end; initialization TestFramework.RegisterTest('', TTestUnit1.Suite); end.
上記は最も基本的な例なので、実際にはテストする内容に合わせて、テストクラス&メソッドを作成する。
テストメソッドは、published スコープにすること。
テストクラスのデフォルトメソッド:
メソッド名 | メソッド説明 |
---|---|
SetUp | テストの準備作業を行う |
TearDown | テストの後始末を行う |
Checkメソッドの説明:
順序 | メソッド説明 |
---|---|
1 | テスト結果:true = テストOK、false = テストNG |
2 | エラー時のメッセージ |
以下のコメントは、その投稿者が所有するものでサイト管理者はコメントに関する責任を負いません。