以前写Java时候经常使用一款单元测试工具JUnit,工作之后在用Delphi,自然也要换到Delphi下面的单元测试工具DUnit。

  DUnit是XUnit家族中的一员,是Extreme Programming测试实现Xtreme Testing的一种工具。

  DUnit的用法和JUnit很类似,如果有相关经验很容易上手。这里是DUnit的官方地址:http://dunit.sourceforge.net/,下载地址:http://sourceforge.net/projects/dunit/

  将DUnit解压至任意目录(我习惯在D:/Study/DelphiLib/),打开Delphi 7,将DUnit路径添加到 Tools- > Environment Options 里面的 Library -> Library Path,这样DUnit安装完成了。

  如果有装过CnPack 的Delphi工具包,可以很轻松的在 File -> New -> Other -> CnPack -> DUnit测试实例生成向导 中建立新的测试用例。

  下面是我的一个简单的测试用例,测试AppFun中的 GetString() 和 Add() 方法。

TAppFun.pas
(*
UTest by Jason
2010-01-06 21:30
*)
unit AppFun;
interface
uses SysUtils;
type TAppFun = class(TObject)
public
class function GetString(sName: string; iAge: Integer): string;
class function Add(iA: Integer; iB: Integer): Integer;
end;
implementation
class function TAppFun.GetString(sName: string; iAge: Integer): string;
begin
result := 'Hello ' + sName + ', your age is ' +
IntToStr(iAge);
end;
class function TAppFun.Add(iA: Integer; iB: Integer): Integer;
begin
Result := iA + iB;
end;
end.
UTest.pas
(*
UTest by Jason
2010-01-06 21:30
*)
unit UTest;
interface
uses
Windows, SysUtils, Classes, TestFramework, TestExtensions;
type
TTest = class(TTestCase)
protected
procedure SetUp; override;
procedure TearDown; override;
published
procedure Test;
procedure TestGetString();
end;
implementation
uses
AppFun, Dialogs;
procedure TTest.Setup;
begin
ShowMessage('In Setup!');
end;
procedure TTest.TearDown;
begin
ShowMessage('In TearDown!');
end;
procedure TTest.Test;
begin
Self.Check(TAppFun.GetString('Jason', 22) = 'Hello Jason, your age is 22',
'Second Test');
end;
procedure TTest.TestGetString();
begin
Check(TAppFun.Add(3, 5) = 8, 'First Test');
end;
initialization
TestFramework.RegisterTest(TTest.Suite);
end.