CppUnit源代码分析总结
来源:互联网 发布:kindle哪个版本好 知乎 编辑:程序博客网 时间:2024/05/23 23:16
Created Saturday 05 March 2011
最近阅读了晨光(Morning)写的CppUnit源代码解读文档,文档写的非常不错。下面是自己学习的一些总结。
CppUnit 中主要的类
TestCase
TestCase 代表一个测试用例,TestSuit 包含一组测试用例,这两个类使用了Composite Pattern。
TestFixture定义了运行测试用例的准备(setup)、清理(tearDown)操作接口。TestCase 执行时,依次调用setup, run, tearDown,这些函数需要在派生类中提供具体实现。这里用到了 Template Method Pattern。TestCase类并不直接使用,定义测试用例时用TestCaller 。
在类的设计中,没有将TestFixture和Test的功能定义在一个类中,体现了“接口隔离”原则。
TestDecorator使用了Decorator Pattern。这个类中需要重新定义基类中的接口,去除接口的virtual属性。
TestCaller的功能不太容易理解。它建立了TestFixture类和Test Method之间的绑定关系。定义测试用例的过程如下:
1) 从TestFixture派生出测试类;
2) 在测试类中定义Test Method;
3) 在TestCaller 对象中,将测试类和Test Method绑定;
4) 将TestCaller对象添加到TestSuit 对象中;
TestResult
SynchronizedObject:提供了互斥机制,需要使用互斥机制的类从这个类派生。
在这个类中,包含ExclusiveZone、SynchronizationObject两个内部类。SynchronizationObject提供了lock、unlock操作接口,使用者需要提供和具体平台相关的实现。在需要进入互斥区域的时候,定义ExclusiveZone 对象,该对象的构造函数、析构函数中将会调用SynchronizationObject的lock、unlock。
Observer Pattern:TestResult和TestListener的角色分别是Subject和Observer。可以有多个对象对测试结果做出响应。
TextTestResultListener: 保存测试结果状态。
TestResultCollector:收集Failures。
TestFactory
TestFacotryEntry负责管理TestFacotry对象,使用map保存name和TestFactory的映射关系。
NameEntries负责管理TestFactoryEntry对象,使用map保存name和TestFactoryEntry的映射关系。这个类只能有一个对象实例,为此,使用Singleton Pattern。
- CppUnit源代码分析总结
- CPPUnit 总结
- cppunit的总结
- CppUnit的分析和使用
- cppunit原理分析以及例子
- cppunit
- cppunit
- CPPUnit
- cppunit
- Cppunit
- CppUnit
- cppunit
- CASSINI源代码分析(5)——总结
- Varnish源代码分析的一些总结
- SDL2源代码分析8:视频显示总结
- gcc源代码分析的方法【总结】
- SDL2源代码分析8:视频显示总结
- 2048游戏源代码分析与总结
- 让您的驱动程序一次处理多个 I/O 请求
- 关于epoll的一些心得----关于监听和数据处理
- hdu1301 Jungle Roads(Prime算法求最小生成树)
- JS的trim()方法
- Android培训班(39)
- CppUnit源代码分析总结
- 如何得到数据库中所有表字段及字段中文描述
- 使用 Spring 2.5 基于注解驱动的 Spring MVC
- SQL语句优化技术分析
- 找女朋友
- Android中Activity之间通信
- Linux下的链接文件
- 有关android的权限
- Pointers on C(第八章 第九章 第十章 第十一章 第十二章)