学习笔记:解读CppUnit源码2

来源:互联网 发布:淘宝 交易指数 编辑:程序博客网 时间:2024/06/06 03:08

 上次我详细的剖析了与Test.h相互关联的代码。Test类是cppUnit的核心。Test这个类相信看了上一章就知道,也就起到测试用例的作用,但是毕竟一个类的功能有限,如何扩充Test类的功能呢?下面装饰者模式就登场了。

TestDecorator.h

这个类中保存了一份Test的指针,这个类的countTestCases方法,run方法和getChildTestCount方法,其实都是调用这个指针对应的方法,当然一个也只是装饰的基类,而真正的类功能扩展是放在它的子类中。

RepeatedTest.h

这个类加了一个m_timesRepeat变量(扩展),就实现了单个测试用例的重复测试。

TestSetUp.h

跟上面一个相比,它做的不是类成员变量的扩充而是方法的扩充。这块代码是对Decorator模式的美妙运用,这样想再扩展Test抽象类功能的时候就变得方便多了。因为不用该其他类了。相同的代码还运用在了TestCaseDecorator这个地方。代码基本相同,在这里就不废话了。

 

下面该说说另外一个很重要的类,TestFixture,相信从这个名字中大家就可以知道了这个是测试的装置器,因为在面向对象的类的测试中,不光光是执行一个类中的一个共有的方法就可以了,至少应该要做被测类的new以及相关测试所必需的成员变量的赋值等等。而装置器正是做这些事情。前面讲的TestCase就多重继承了它。

TestFixture.h

因为是空的虚函数,那么setUp和tearDown这两个方法是在哪里实现的呢?当然是在具体的测试类中实现(如ExampleTestCase,它继承自TestFixture,然后再扩展这两个方法的功能)。

原创粉丝点击