配置测试环境
在使用Dunit前应该将下载的Dunit解压。然后后将Dunit的路径加到菜单 Tools->Environment Options 里面的Library->Library Path中。
创建一个被测试的Project
创建一个Project,将确省的Unit1保存为Unit_Main.pas文件。增加一个Public的函数Sum,Sum代码如下:
function TfrmMain.Sum(a, b: Integer): Integer;
begin
Result:= a+b;
end;
创建新的Test的Project
再创建一个Project,命名为TestProject。将被测试单元引用进来
删除确省的Unit1(Form1),创建一个的Unit,注意不是Form
将创建的Unit保存为TestUnit,在interface中加入以下代码
uses
TestFrameWork,BeTestUnit;
//TestFrameWork是每个TestCase都必须使用的,后面要使用的TtestCase等类的定义都在TestFrameWork中。
//BeTestUnit是将要被测试单元。
定义TestCase,测试类定义代码如下:
TTestCaseFirst = class(TTestCase)
private
protected
procedure SetUp; override; //初始化类
procedure TearDown; override; //清除数据
published
procedure Test;
end;
在定义测试方法时候注意,Dunit是通过RTTI(RunTime Type Information)来寻找并自动注册测试方面的,
具体实现是通过代码TestFramework.RegisterTest(TTestCaseFirst.Suite);
SetUp,TearDown是在运行测试方法前、后运行的,所有一般把要测试的类的初始化及清除放在这两个过程中。
procedure TTest.SetUp;
begin
//初始化
end;
procedure TTest.TearDown;
begin
//释放
end;
procedure TTest.Test;
begin
Check(frmMain.Sum(3, 2) = 8, 'First Test');
end;
修改Project主文件
运行前的最后一步是修改Project主文件TestProject.dpr。先使用菜单Project->View Source打开TestProject.dpr.
修改后的代码如下:
program TestProject;
uses
Forms,
TestFrameWork,
GUITestRunner,
TestUnit in 'TestUnit.pas';
{$R *.res}
begin
Application.Initialize;
//Application.Run;
GUITestRunner.RunRegisteredTests;
end.
上面的加粗代码是要增加和修改。