CppUnitLite的实现分析

本文详细介绍了CppUnitLite的实现,包括TestRegistry作为Singleton模式管理测试用例,Test类作为基类并维护测试链表,TEST宏定义具体测试用例,TestResult收集执行结果,以及CHECK和CHECK_EQUAL辅助宏进行结果验证。

CppUnitLite的实现分析

1.       TestRegistry是一个Singleton模式。

l         外界通过instance()方法获得它的一个实例。

l         它实际是所有测试用例的注册表。

l         它包含了一个指向测试用例链表的指针,即Test指针。并且维护该链表。

l         实例方法add负责向链表中加入一个新的测试用例,并将已有的测试链表作为新的测试用例的下一个节点。所以测试用例链表是一个LIFO队列。

l         它负责调用所有测试用例的执行方法

 

2.       Test是所有测试用例的基类。

l         构造函数负责将本身加入到TestRegistry注册表中,并作为首节点。

l         它提供了一个纯虚函数run,具体的测试用例override此虚方法。

l         它包含一个执行下一个测试用例的指针,所以Test本身是一个测试用例链表。

 

3.       TEST包含实际的一条测试用例的代码。

l         负责定义一个Test的子类。

l         override基类的纯虚函数run,使得子类可以别实例化。

l         负责生成该子类的一个实例。(基类的构造函数保证将该实例添加到TestRegistry注册表中)。

 

4.       TestResult负责收集所有测试用例的执行结果

l         虚函数testStarted表示开始执行测试测试用例。

l         虚函数testEnded表示测试用例执行完毕。

l         虚函数addFailure表示执行某一条测试时,出现错误。

 

5.       辅助宏CHECKCHECK_EQUAL在预期和结果不符时,调用TestResult的虚函数addFailure

 

6.        FailureSimpleString属于辅助类,分别代表执行测试时的错误信息(如文件名、行号,预期结果、实际结果等),简单字符串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值