工具软件   办公软件   操作系统   网络安全   设计在线   程序开发   教程宝典   软件下载   软件论坛
您的位置:软件 > 开发者网络 > 开发工具 > 开发专栏 > Delphi > 正文
Delphi2005和DUnit搭建敏捷开发平台
[文章信息]
作者:taowen2002
时间:2005-01-04
出处:CSDN
责任编辑:方舟
[文章导读]
为了搭建一个敏捷平台,我以Delphi2005和DUnit进行了一点小小的尝试,并把结果记录于下,与大家分享
advertisement
热点推荐
· 真没想到VB也可以这样用之指针技术
· 禁止QQ登录的方法
· 给你的XML文件做个数字签名
· ImageReady制作“焰火”小动画
· Java加密和数字签名编程快速入门
[正文]
  之前用的是Java那一套东西,有Eclipse什么都搞定了。现在因为要用Delphi改一个即时通讯软件的缘故,想着怎么能把重构和单元测试那一套搬到Delphi这边来。书上说给现有的代码加单元测试能够加深对代码的理解,并且可以作为改善代码的基础,这不正是我要做的事情吗?于是,为了搭建这么一个敏捷平台,我以Delphi2005和DUnit进行了一点小小的尝试,并把结果记录于下,与大家分享。

  1、下载Delphi2005

  因为Borland公司在中国不出售专业版本,鉴于架构师和企业版的天价,所以只能从网络上下载一个D版的做个人使用。Delphi2005体积比较大,而且Update1也需要CD,为避免麻烦我就不直接提供下载地址了,有兴趣的朋友可以用google搜一下,肯定会有所的。

  2、下载Delphi2005的sp1

  据说打过这个补丁之后能快一些,但是这个补丁安装起来可慢了,还需要用光盘。下载地址如下:

http://www.delphifans.com/SoftView/970.html

  3、下载DUnit

https://sourceforge.net/projects/dunit/

  4、安装Delphi2005+sp1

  注意一下keygen中有一个register以及安装的时候一定要同时安装.net和win32版本的delphi,C#builder则无所谓。因为如果只安装win32版本会导致重构功能不可用(这是delphi2005的一个bug,表现就是用重构的时候出现.net的异常窗口)。

  5、精简Delphi2005

  因为上一步的时候同时安装了.net版本,导致delphi启动的时候变得非常慢。这个可以通过修改注册表,删掉一些IDE的包来实现。具体的做法是在Delphi的快捷方式目标后面加上参数-rxxx,也就是BDS.exe -rxxx。这个xxx任由你指定,然后你就会在HKEY_CURRENT_USER\Software\Borland\xxx(这个就是你选定的名字xxx)\3.0\Known IDE Packages中发现那些该死的包。注意不能和网络上别的win32纯化分子那样删得太干净了,那样重构就没法用了。我自己试验多次之后得出的一个比较精简的列表如下

"$(BDS)\\Bin\\vclmenudesigner90.bpl"="(Untitled)"
"$(BDS)\\Bin\\win32debugproide90.bpl"="(Untitled)"
"$(BDS)\\Bin\\htmide90.bpl"="HTML Designer Package"
"$(BDS)\\Bin\\iteidew3290.bpl"="Borland Integrated Translation Environment for Win32"
"$(BDS)\\Bin\\SrcManIDE90.bpl"="(Untitled)"
"$(BDS)\\Bin\\todoide90.bpl"="Borland ToDo"
"$(BDS)\\Bin\\htmlhelp290.bpl"="Borland HtmlHelp Viewer"
"$(BDS)\\Bin\\idefilefilters90.bpl"="IDE File filters"
"$(BDS)\\Bin\\startpageide90.bpl"="Borland Start Page IDE Package"
"$(BDS)\\Bin\\refactoride90.bpl"="Borland Core Refactoring Package"
"$(BDS)\\Bin\\dbkdebugide90.bpl"="(Untitled)"
"$(BDS)\\Bin\\exceptiondiag90.bpl"="(Untitled)"
"$(BDS)\\bin\\deployide90.bpl"="Deployment Manager"
"$(BDS)\\Bin\\plugview90.bpl"="Pluggable Tree View Package"
"$(BDS)\\Bin\\coreproide90.bpl"="Core IDE Pro Package"
"$(BDS)\\Bin\\IDETools90.bpl"="Build Tools"
"$(BDS)\\Bin\\unittestide90.bpl"="(Untitled)"
"$(BDS)\\Bin\\historyide90.bpl"="(Untitled)"
"$(BDS)\\Bin\\htmltidy90.bpl"="HTML Tidy Formatter"
"$(BDS)\\Bin\\HTMLFmt90.bpl"="HTML Internal Formatter"
"$(BDS)\\Bin\\mlcc90.bpl"="Markup Language Code Completion Package"
"$(BDS)\\Bin\\delphivclide90.bpl"="Delphi VCL Designer IDE Package"
"$(BDS)\\Bin\\delphicoreproide90.bpl"="(Untitled)"
"$(BDS)\\Bin\\win32debugide90.bpl"="(Untitled)"
"$(BDS)\\Bin\\htmlide90.bpl"="(Untitled)"
"$(BDS)\\Bin\\delphide90.bpl"="Delphi Win32 IDE Personality"
"$(BDS)\\Bin\\mtspro90.bpl"="(Untitled)"
"$(BDS)\\Bin\\mtsent90.bpl"="(Untitled)"
"$(BDS)\\Bin\\iteidenet90.bpl"="Borland Integrated Translation Environment for .NET"
"$(BDS)\\Bin\\NetImportWiz90.bpl"="(Untitled)"
"$(BDS)\\Bin\\DataExplorer90.bpl"="(Untitled)"

  虽然启动还是有些慢,不过总算能忍受了。

  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。

  至此重构功能和单元测试都有了。剩下的就是给既有代码添加测试,然后慢慢重构的事情了。

天极社区邀请您:写博客日记  上传相片   论坛聊天  订阅电子杂志  推荐网摘   免费图铃工具
笔名:   请您注意:

 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

 天极网拥有管理笔名和留言的一切权利。
评论:
 
发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容焦点新闻
  • Delpih 中的Windows API编程初步
  • 利用Delphi 2005 编写C#应用程序
  • 图解Delphi 8 Eco 开发实战
  • Delphi中实现DBGrid列宽度自动调整
  • 奇迹重现 Delphi 2005赏析
  • 民营家电商排队造手机 设备商全面杀入
  • 英特尔澄清杨旭任职传闻 官方没宣布此消息
  • 国资委河北密制联通拆分方案
  • 垃圾邮件害人害企害国 清除垃圾邮件不手软
  • 中兴携手阿尔卡特 全球逐鹿CDMA
  • 用友总裁王文京:誓将ERP变成“大众消费”
  • 香港消费者委员会:数码相机最贵未必最好
  • 外电称中兴正评估西门子手机业务 或能并购
  • Advertisement

    天极无线


    奇妙科幻|美好风光|清风车影|漫画卡通|星座生肖|明星写真|动物世界
    老鼠爱大米
    挥着翅膀的女孩
    女人味
    栀子花开
    白月光
    刚刚好
    江南
    快乐崇拜
    亲爱的你怎么不在我身边
    小薇
    2002年的第一场雪
    有多少爱可以重来
    我的地盘
    七里香
    情人
     
    老鼠爱大米 老板电话
    冲动的惩罚 七里香
    我不是黄蓉 女生撒娇
    盛夏的果实 坚持到底
    孤单北半球 眉飞色舞
    挪威的森林 可爱女人
    最浪漫的事 老板电话

    CSEEK搜索