cxxtest单元测试框架源码分析(一):类的组成关系

 一:对于单元测试工具的选型,个人认为需要关注四点:

1、简单 ----对于使用者来说这点很重要,对外功能简单,体现为够用就好,而不是全集

2、简洁 ----我们不希望写除了测试意外的废代码,包括用例的注册

3、高效 ----对于程序员来说,最不能容忍的就是效率问题

基于以上因素,我们选择了CxxTest,为了更好的应用该工具,从今天开始逐步解析CxxTest的内幕。

二:CxxTest内部类的组成

首先我们看下CxxTest中各类的平面关系图 

 

从上图可以看出最主要包含了三大类:

A、CxxTest:Link相关类及其子类:包含CxxTest中使用到的描述信息:如:TestDescription、SuiteDescription、WorldDescription(详细继承关系如下)

 

B、CxxTest:Listener相关类及其子类 :主要实现测试过程中收到通知信息的处理(如根据测试结果输出到不同的界面以及文件等等)。

    它的子类又主要分成:文本输出(继承CxxTest:ErrorFormat)、图形化输出(继承CxxTest:GuiListener)、XML文件输出(集成CxxTest:XmlFormat)(详细继承关系如下)

 

C、CxxTest:ValueTraits模板类:主要用于实现断言TS_ASSERT_EQUALS,将任意的数据类型转换成字符串。

     说明:从下图可以看出,CxxTest只实现了基本数据类型比较断言,即如果要实现自定义类型的断言还需要实现CxxTest:ValueTraits模板类(具体怎么操作见后续文章)

 

其他类作用说明:

CxxTest::TestSuite:是所有测试用例的基类,所有测试用例都必须继承该类,测试用例都是void test*()类型的公有函数

CxxTest::TestRunner :用于运行所有的测试用例(使用方式为:创建一个实现了TestListener的子类对象,然后调用TestRunner::runAllTests( myListener )即可)

CxxTest::OutputStream:由于CxxTest并不依赖外部任何的库,这里定义了输出流的基类

版权说明

转载改文章请指明出处http://www.cnblogs.com/xiaocheng,多谢!

Author: Elvis.Chen 

 

转载于:https://www.cnblogs.com/xiaocheng/archive/2009/06/16/1504549.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值