3月 04

※昔の記事を復活(※2004/03/29頃の話を復活させた)

クイックスタート

DUnit がどんなものなのか、ここで少し体験してみます。
新しいプロジェクトを作成して、 1 + 1 = 2 となることを確かめるサンプルです。
※Delphi 7 を使って作業をしてます。

プロジェクトの作成

まず、Delphi を起動します。勝手に新しいプロジェクトができます。

いらないファイルを取り除く

Delphi を起動したときにいくつかのファイルが勝手に作成されます。この中のいらないファイルを取り除きます。

まず画面に出てきている Form1 を[×]ボタンを押して消します。
img/2-01-form1.png
FDelphi orm1

Unit1.pas という Form1 の実体もいらないので右上の [×] ボタンを押して消します。
img/2-02-unit1.png
Delphi Unit1
[Unit1.pas を保存しますか?] と聞いてきますが、もちろん保存しません。[いいえ]です。

ここまできたら一旦プロジェクトを保存します。[ファイル] – [すべて保存] を選びます。
img/2-03-file_all.png
Delphi File Save All
プロジェクト名に Project1Test.dpr というような名前を付けて保存します。

DUnit のファイルをプロジェクトに追加

[プロジェクト] – [ソース表示] を選びます。
img/2-04-prj_src.png
Delphi Project Source

出てきたウィンドウに DUnit のファイルを追加します。
img/2-05-prj_dpr.png
Delphi Project.dpr
エクスプローラで dunit-7.2.0\src (ここでは C:\Tools\dunit-7.2.0\src) を開き、
TestFramework.pas と、GUITestRunner.pasProject1Test.dpr ウィンドウにドラッグアンドドロップします。

img/2-06-prg_dpr_add.png
DUnit GUITestRunner

これで、DUnit のファイルは追加できました。

TestCase を追加

[ファイル] – [新規作成] – [ユニット] を選んで Unit1 を追加します。
Unit1 の初期状態

unit Unit1;

interface

implementation

end.

これを以下のように変更します。

Unit1 の変更後

unit Project1TestCases;
interface
uses
 TestFrameWork;

type
 TTestCaseFirst = class(TTestCase)
 published
   procedure TestFirst;
 end;

implementation

procedure TTestCaseFirst.TestFirst;
begin
 Check(1 + 1 = 1, 'Oops!');
end;

initialization
 TestFramework.RegisterTest(TTestCaseFirst.Suite);
end.

※わざと1 + 1 = 1 というようにして、必ずテストが失敗するようにしてあります。

Unit1 を Project1TestCases.pas という名前で保存します。

Project1Test.dpr を編集

初期状態で以下のようになっている Project1Test.dpr を、

Project1Test.dpr の変更前

program Project1Test;

uses
  Forms,
  Project1TestCase in 'Project1TestCase.pas';

{$R *.res}

begin
  Application.Initialize;
  Application.Run;
end.

以下のように変更します。
Project1Test.dpr の変更後

program Project1Test;
uses
 Forms,
 TestFrameWork,
 GUITestRunner,
 Project1TestCases in 'Project1TestCases.pas';

{$R *.RES}

begin
 Application.Initialize;
 GUITestRunner.RunRegisteredTests;
end.

テストを失敗させる

ここまでで、テストが実行できるようになっています。
[実行] – [実行] を選択して、実行してみてください。

DUnit の ダイアログが表示されるはずです。
img/2-08-dunit_dlg_def.png
DUnit Dialog Default

実行ボタン([Actions] – [Run] またはF9)を押すと、テストが実行されます。

1 + 1 の答えは 1 にはなりませんので、テストは失敗します。
img/2-09_dunit_dlg_fail.png
DUnit Dialog Test Fail

この、テストが失敗することを確認するのは、すごく大事です。
テストがちゃんと実行されていることを確認することができるからです。

テストを成功させる

今度は、1 + 1 の答えが 2 になるかをテストします。
Project1TestCases.pas のを以下のように変更します。

変更前:

Check(1 + 1 = 1, 'Oops!');

変更後:

Check(1 + 1 = 2, 'Catastrophic arithmetic failure!');

これは、問題なくパスするはずです。
img/2-10_dunit_dlg_pass.png
DUnit Dialog Test Pass

これが、DUnit の基本的な動きです。

関連


Trackback URL

Leave a Reply