本文讲解了Dunit的基本使用方法,是我再初识Dunit的一点积攒,现在总结出来供Dunit学习者起步之用,至于更深入的研究还靠读者们的细心研究与不断的实践再实践!本文如有讲解错误之处还请读者朋友们积极提出,我们共同讨论,共同进步!
Dunit初步详解
一、安装Dunit
将dunit-9.2.1(本文以dunit-9.2.1为例)解压缩到文件夹F:DUnit案例dunit-9.2.1,
(dunit-9.2.1无需安装,它提供的是测试框架和一些测试类,只需要在Delphi中调用即可)
主要类型:
TestFramework.pas 框架本身
TestExtensions.pas 可用来扩充测试案例的 Decorator 类?
GUITesting.pas 用来测试使用者介面的类?
TextTestRunner.pas 在主控台模式下执行测试的函式
GUITestRunner.pas 此框架的图形化使用者界面
GUITestRunner.dfm GUITestRunner Form
二、设计测试案例
本文以Delphi 6开发环境为例,在这里我介绍两种单元测试案例:
一种是简单的不需调用其他Project的测试案例TestCase1;
另一种是调用其他Project中函数的测试案例TestCase2。
下面开始我们的Dunit之旅:
TestCase1
1.首先将Dunit的路径加载到Delphi中,
Tools ->Environment ->Options ->Library->Library path,
注意:一定要把路径名给到src文件夹下。
2.新建一个项目,关闭Delphi自动启动的Form1,Unit1.新建一个没有Form的项目,File->New->Unit,保存:将项目保存为Project1Test.dpr,Unit1保存为Project1TestCases.pas。
在Project1TestCases.pas中敲入如下代码:
(你可以用如下代码替换掉Project1TestCases.pas中的代码,假如你很懒的话!)
unit Project1TestCases;
interface
uses
TestFrameWork; // TestFrameWork是每个测试用例都必须使用的类
type
TTestCaseFirst = class(TTestCase) // TTestCase包含在TestFrameWork中
published
procedure TestFirst; // 声明一个测试用例
end;
implementation
procedure TTestCaseFirst.TestFirst;
begin
Check(1 + 1 = 2, 'Catastrophic arithmetic failure!');
end;
initialization
TestFramework.RegisterTest(TTestCaseFirst.Suite); // TestFramework.RegisterTest 程序会把传入的测试案例组件注?到此框架的注?系统里
end.