Dunit基本介紹
Dunit是Xunit家族中的一員,用于Dephi的單元測(cè)試。是Extreme Programming測(cè)試實(shí)現(xiàn)Xtreme Testing的一種工具。Dunit是一個(gè)Free的測(cè)試工具,沒(méi)有代碼覆蓋率功能。
Dunit的官方Web Site 是https://sourceforge.net/projects/dunit/。
使用Dunit應(yīng)該先看看Dunit安裝目錄下的docREADME.html。本文也是參看Readme寫(xiě)的。
配置測(cè)試環(huán)境
在使用Dunit前應(yīng)該將下載的Dunit解壓。然后后將Dunit的路徑加到菜單 Tools->Environment Options 里面的Library->Library Path中。
Dunit的主要文件
TestFramework.pas The framework itself.
TestExtensions.pas Decorator classes that may be used to extend test cases.
GUITesting.pas Classes for testing user interfaces (Forms and Dialogs).
TextTestRunner.pas Routines to run tests in console mode.
GUITestRunner.pas The graphical user interface to the framework.
GUITestRunner.dfm The GUITestRunner Form
Dunit基本實(shí)現(xiàn)方法(GUI方式)
Dunit的基本實(shí)現(xiàn)思路是將被測(cè)試代碼(單元)與測(cè)試代碼(單元)分開(kāi)。提供一個(gè)FrameWork及一個(gè)運(yùn)行界面。 所有的測(cè)試單元都應(yīng)繼承TtestCase。
運(yùn)行GUI界面
運(yùn)行TestCase
這里要注意的一點(diǎn)是SetUp方法和TearDown是每個(gè)測(cè)試方法運(yùn)行時(shí)都被調(diào)用的,如果想要只運(yùn)行一次Setup及TearDown,應(yīng)該使用TtestSetup類,具體情況后面《Dunit附加功能》一節(jié)。
創(chuàng)建一個(gè)簡(jiǎn)單的例子
創(chuàng)建一個(gè)被測(cè)試的Project
創(chuàng)建一個(gè)名為BeTestProject的Project,將確省的Unit1保存為BeTestUnit.pas文件。把確省的TForm1改名為BeTestForm中增加一個(gè)Public的函數(shù)BeTestFunction,BeTestFunction代碼如下:
function BeTestForm.BeTestFunction(i,j:integer):integer;
begin
Result:=i*j;
end;
創(chuàng)建一個(gè)測(cè)試Project
創(chuàng)建新的Project
再創(chuàng)建一個(gè)Project,命名為TestProject。如果沒(méi)有和BeTestProject放在同一目錄,將BeTestProject的存放路徑加到加到菜單 Tools->Environment Options 里面的Library->Library Path中。
編寫(xiě)TestCase
刪除確省的Unit1(Form1),創(chuàng)建一個(gè)的Unit,注意不是Form.
將創(chuàng)建的Unit保存為TestUnit,在interface中加入以下代碼
uses
TestFrameWork,BeTestUnit;
TestFrameWork是每個(gè)TestCase都必須使用的,后面要使用的TtestCase等類的定義都在TestFrameWork中。BeTestUnit是將要被測(cè)試單元。