51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 4971|回复: 2
打印 上一主题 下一主题

如何使用DUNIT?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2005-12-27 14:19:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
解压后文档结构

DUnit         
   |____framework  (事先编译好的框架模块)
   |      
   |____src        (函式库原始码)
   |
   |____doc        (辅助说明档,网页与 MPL 授权许可)
   |        |
   |        |____ images    (网页的图形档案)
   |        |
   |        |____ API   (Time2Help 产生的 API 文件)
   |            
   |____Contrib        其它人贡献的模块
   |              |
   |         |____XPGen  ( 一个可以自动产生测试案例(test cases)的工具
   |____tests        (给这个框架本身所使用的测试案例
   |
   |____bin        (事先编译好,可以单独执行的 GUI 测试程序
   |
   |____examples         
           |
             |____cmdline        (示范如何在命令列环境下使用 DUnit
           |
             |____collection        (一个类似 Java 的集合(collections)实作以及它的 DUnit 测试案例
           |
             |____registration        (使用测试案例注册系统(registration system)
             |
             |____structure   (组织测试程序代码的方式
             |                  |
             |           |____diffunit   (把测试案例放在独立的单元里面
           |                  |
             |           |____sameunit   (把测试案例和被测试的程序代码放在同一个单元里面
             |
             |____registry   (一步步教你建立一个存取 Registry 的工具及其测试案例
             |
             |____embeddable  (示范如何将 GUITestRunner 嵌入至其它窗口内



目录 src 包含下列档案

TestFramework.pas       框架本身
TestExtensions.pas        可用来扩充测试案例的 Decorator 类别
GUITesting.pas             用来测试使用者接口(窗口与对话盒)的类别
TextTestRunner.pas      在主控台模式下执行测试的函数
GUITestRunner.pas       此框架的图形化使用者接口
GUITestRunner.dfm      此框架的图形化使用者窗口

在开始使用 DUnit 之前,Delphi 的单元搜寻路径里必须包含 DUnit 的原始码或编译后的档案路径 。你可以在 Delphi IDE 中点选 Tools | Environment Options | Library,然后把 DUnit 路径加到原有的路径清单里:

1.建立一个工程Project1Test.dpr
    在你想要测试的应用程序的相同目录下的 'real life' 目录

2.点选 File | New | Unit 以建立一个新的(没有 form 的)单元
      取文件名称" Project1TestCases.pas "

3.在单元文件"Project1TestCases.pas"中interface 的 uses 子句里加入 TestFramework。

4.宣告一个 TTestCaseFirst 类别,该类别继承自 TTestCase,然后实作一个如下所示的 TestFirst 方法(显然地,这个小范例只是为了让你顺利起步),注意最后的 initialization 区段,TTestCaseFirst 类别就是在这里完成注册的。

unit Project1TestCases;
interface
uses
  TestFrameWork;
type
  TTestCaseFirst = class(TTestCase)
  published
    procedure TestFirst;
  end;
implementation
procedure TTestCaseFirst.TestFirst;
begin
  Check(1 + 1 = 2, 'Catastrophic arithmetic failure!');
end;
initialization
  TestFramework.RegisterTest(TTestCaseFirst.Suite);
end.
//注意:TestFramework.RegisterTest 程序会把传入的测试案例对象注册到此框架的注册系统里。

5.在执行这个项目以前,点选主选单的 Project | View Source 以开启项目的原始码,把 TestFrameWork 以及 GUITestRunner 加到 uses 子句里,然后移除预设的 Application 程序代码,并以下面的程序代码取代:
program Project1Test;
uses
Forms,
TestFrameWork,
GUITestRunner,
Project1TestCases in 'Project1TestCases.pas';
{$R *.RES}
begin
Application.Initialize;
GUITestRunner.RunRegisteredTests;
end.

6.现在试着执行程序,如果一切正常,你应该会看到 DUnit 的 GUITestRunner 窗口,里面有一个树状元件显示可用的测试(目前只有 TestFirst),点一下 Run 按钮即可执行测试。画面上的复选框可以让你以阶层的方式选择欲测试的项目,还有额外的按钮以便切换测试项目或整个分支的选取状态。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2005-12-27 19:38:09 | 只看该作者
顶一下,对大家理解NUnit的结构有帮助。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2007-10-12 17:24:46 | 只看该作者
xie xie
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-5-2 10:23 , Processed in 0.076585 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表