? Test最重要的一个公共接口为:
virtual void run(TestResult *result) = 0;
其作用为执行测试对象,将结果提交给result。
? 在实际应用中,一般不会直接使用Test、TestComposite以及TestLeaf,除非要重新定制某些机制。
核心内容 ---TestFixture
? 用于维护一组测试用例的上下文环境
? 在实际应用中,经常会开发一组测试用例来对某个类的接口加以测试,而这些测试用例很可能具有相同的初始化和清理代码。为此,CppUnit引入TestFixture来实现这一机制。
? TestFixture具有以下两个接口,分别用于处理测试环境的初始化与清理工作:
? virtual void setUp();
virtual void tearDown();
核心内容 ---TestCase
? 测试用例,从名字上就可以看出来,它便是单元测试的执行对象。
? TestCase从Test和TestFixture多继承而来,通过把Test::run制定成模板函数(Template Method)而将两个父类的操作融合在一起
? 这里要提到的是函数runTest,它是TestCase定义的一个接口,原型如下:
virtual void runTest();
? 用户需从TestCase派生出子类并实现runTest以开发自己所需的测试用例。
核心内容 ---TestSuit
? 测试包,按照树形结构管理测试用例
? TestSuit是TestComposite的一个实现,它采用vector来管理子测试对象(Test),从而形成递归的树形结构。
核心内容 --- TestCaller
? TestCase适配器(Adapter),它将成员函数转换成测试用例
? 虽然可以从TestCase派生自己的测试类,但从TestCase类的定义可以看出,它只能支持一个测试用例,这对于测试代码的组织和维护很不方便,尤其是那些有共同上下文环境的一组测试。为此,CppUnit提供了TestCaller以解决这个问题
文章来源于领测软件测试网 https://www.ltesting.net/