程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi2005和DUnit搭建敏捷開發平台(3)

Delphi2005和DUnit搭建敏捷開發平台(3)

編輯:Delphi

雖然啟動還是有些慢,不過總算能忍受了。

6、編譯並安裝DUnit

用你知道的辦法把DUnit編譯成dcu,放入你指定的目錄。並把該目錄添加到Delphi的Tools->Environment Options->Delphi Options->Library-win32的Library Path中。

另外把DUnit.exe給編譯出來

7、建立工程

我推薦的方式是寫Delphi程序的時候把界面和後台分開,具體就是開兩個項目,一個普通的VCL項目,一個DLL項目。不,不,我的意思並不是讓你用DLL這種方式來共享代碼。這個DLL項目包含文件是所有後台的內容,以及對後台的測試。產生的DLL給DUnit用,DUnit能夠從其中讀出測試並運行。而實際上GUI部分的那個工程是包含了所有的文件的,也就是說分與其說分兩個工程,不如說是在原來的單個工程的基礎上加上了一個專門用於測試的DLL工程。

項目分為三塊:GUI,Core,TestCore。工程一包括GUI+Core,工程二包括Core+TestCore。工程一的輸出是Win32Exe程序。工程二輸出是Win32Dll程序。

然後可以把這兩個工程放到一個Project Group中。

8、編寫測試

工程一和普通寫Dephi程序沒有什麼兩樣,要記得把GUI的功能分出來後台,讓後台Testable。測試都是寫在工程二中的,我把工程二的名字就叫做Core。下面就在Core中添加一個最基本的測試,檢查1+1是不是等於2。

建立TestCase

unit TestBasic;
interface
uses
TestFramework;
type
 TBasic = class
public
 function Add(a, b: integer): integer;
end;
TTestBasic = class(TTestCase)
private
 FBasic: TBasic;
public
 procedure SetUp; override;
 procedure TearDown; override;
 published
 procedure TestAdd;
end;
implementation
function TBasic.Add(a, b: integer): integer;
begin
 Result := a + b;
end;
procedure TTestBasic.SetUp;
begin
 FBasic := TBasic.Create;
end;
procedure TTestBasic.TearDown;
begin
 FBasic.Free;
end;
procedure TTestBasic.TestAdd;
begin
 CheckEquals(2, FBasic.Add(1, 1));
end;
initialization
RegisterTest('', TTestBasic.Suite);
end.

修改Core.bdsproj(KAO,什麼古怪的後綴啊)

把begin end.改成

exports
RegisteredTests name 'Test';
end.

並在Uses部分添加TestFramework。

DUnit就是通過這個export的函數在dll中找出我們注冊的TestCase的。

9、運行DUnit

把DUnit添加到Tools菜單下吧,那樣方便許多。只是參數不好填寫。我沒有用裡面的Macro,直接填了絕對路徑。如果你和我一樣這樣直接填的絕對路徑,那麼從Tools菜單下選DUnit就能直接看到一個測試列表了,點運行就會看到一個綠燈亮起了。

如果你不是把DUnit添加到Tools菜單,那麼就要從File->Load Test的文件選擇窗口中找到Core項目編譯出來的dll,core.dll。

至此重構功能和單元測試都有了。剩下的就是給既有代碼添加測試,然後慢慢重構的事情了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved