Dunit基本介绍 Dunit是Xunit家族中的一员,用于Dephi的单元测试。是Extreme Programming测试实现Xtreme Testing的一种工具。Dunit是一个Free的测试工具,没有代码覆盖率功能。 Dunit的官方Web Site 是https://sourceforge.net/projects/dunit/。 使用Dunit应该先看看Dunit安装目录下的docREADME.html。本文也是参看Readme写的。 配置测试环境 在使用Dunit前应该将下载的Dunit解压。然后后将Dunit的路径加到菜单 Tools->Environment Options 里面的Library->Library Path中。
Dunit的主要文件
Dunit基本实现方法(GUI方式) Dunit的基本实现思路是将被测试代码(单元)与测试代码(单元)分开。提供一个FrameWork及一个运行界面。 所有的测试单元都应继承TtestCase。 运行GUI界面
运行TestCase
这里要注意的一点是SetUp方法和TearDown是每个测试方法运行时都被调用的,如果想要只运行一次Setup及TearDown,应该使用TtestSetup类,具体情况后面《Dunit附加功能》一节。 创建一个简单的例子 创建一个被测试的Project 创建一个名为BeTestProject的Project,将确省的Unit1保存为BeTestUnit.pas文件。把确省的TForm1改名为BeTestForm中增加一个Public的函数BeTestFunction,BeTestFunction代码如下: function BeTestForm.BeTestFunction(i,j:integer):integer;
创建一个测试Project 创建新的Project 再创建一个Project,命名为TestProject。如果没有和BeTestProject放在同一目录,将BeTestProject的存放路径加到加到菜单 Tools->Environment Options 里面的Library->Library Path中。 编写TestCase 删除确省的Unit1(Form1),创建一个的Unit,注意不是Form.
将创建的Unit保存为TestUnit,在interface中加入以下代码 uses
TestFrameWork是每个TestCase都必须使用的,后面要使用的TtestCase等类的定义都在TestFrameWork中。BeTestUnit是将要被测试单元。 定义TestCase,测试类定义代码如下: TTestCaseFirst = class(TTestCase)
在定义测试方法时候注意,Dunit是通过RTTI(RunTime Type Information)来寻找并自动注册测试方面的,具体实现是通过代码 TestFramework.RegisterTest(TTestCaseFirst.Suite);
这段代码将在后面提到,TtestCaseFirst.Suit在寻找的规则是: 1、测试方法是没有参数的Procedure 2、测试方法被申明为Published SetUp,TearDown是在运行测试方法前、后运行的,所有一般把要测试的类的初始化及清除放在这两个过程中。 以下是实现的代码: procedure TTestCaseFirst.SetUp;(责任编辑:admin) |



