工作积累之CPPUNIT框架

 1) 测试对象族

  CPPUNIT的测试对象的类关系图:

  Test:所有测试对象类的抽象基类,主要是定义run方法和统计子对象个数和查找遍历子对象的方法;

  TestFixture:该类非常简单,只定义了两个方法setUp和tearDown,作为测试对象的准备和拆除方法,一般用户编写的测试类都直接继承它;

  TestComposite、TestLeaf:根据设计模式中组合模式而设计的两个类,都继承自Test;

  TestSuite:具体化了TestComposite的内容存储方式、添加子对象接口等等。该类对象包含了若干测试对象,作为测试对象的容器,而且可以嵌套;

  TestRunner: 控制测试对象的构造和测试对象执行的类;

  TestCase: 定义了一个测试对象要实现的具体接口,同时继承TestFixture的setUp和tearDown;

  接口

  TestCaller: 使用了设计模式中的策略模式,作为测试对象的最终封装类,提供了测试运行的策略,在测试执行中扮演了重要的角色。它是一个模板类。

  2) 信息收集与显示族

  CPPUNIT的测试信息收集与显示的类关系图

  Outputter:是所有测试输出类的抽象基类,定义了write方法;

  CompilerOutputter:以编译器信息类似方式输出测试信息,使用TestResultCollector获取测试信息;

  TextOutputter:以文本流的方式输出测试信息,同样使用TestResultCollector获取测试信息;

  TestListener:以设计模式中观察者模式定义了Observer所应该具有的从TestResult获取测试步骤信息的方法;

  TestSuccessListener:实现了TestListener接口,同时继承了SynchronizedObject了从而具有线程安全性;

  SynchronizedObject:该类实现了lock和unlock操作;

  ExclusiveZone:使用SynchronizedObject进行了临界区的加锁和解锁操作;

  TestResult:这个测试信息的收集者,在观察者模式中扮演Subject角色,是它把测试的各个步骤的信息通知到所有Listener对象的。

  3)测试对象管理族

  CPPUNIT测试对象管理类关系图

  TestFactory:运用了设计模式中工厂设计模式,这里只定义了一个makeTest方法,是一个抽象基类;

  TestSuiteFactory:该类继承自TestFactory,而且是模板类,是生成TestSuite对象的工厂;

  TestFactoryRegistry:管理TestFactory对象的类(这里继承自TestFactory个人感觉有点不太恰当);

  AutoRegisterSuite:模板类,自动把特定的TestSuiteFactory对象注册到TestFactoryRegistry对象;

  TestSuiteBuilderContextBase、TestSuiteBuilderContext:用于构建测试对象的类,详细见代码分析部分。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值