CppUnitLite的实现分析

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属于辅助类,分别代表执行测试时的错误信息(如文件名、行号,预期结果、实际结果等),简单字符串。

你可能感兴趣的:(CppUnitLite的实现分析)