看了前面5章的话,就可以了解cppUnit大致的结构了。这里讲讲一些并不是很核心但却是不可货缺的代码。看看他们虽然学不到优秀的设计知识,但是巩固一下C++的基础也不错。
SourceLine.h
C中关于文件名和代码所在的行数有两个宏定义(__FILE__,__LINE__),方便在调试和其他场合输出。而这个SourceLine类正是对两者的封装。需要补充一点请大家注意SourceLine::operator !=操作符重载,在它的方法实现里面,是调用了operator==,即保证了语义的正确,又避免了代码重复
Message.h
message类是对一个字符串(简短描述)和复数行字符串的一个封装。
Exception.h
Exception类聚集了异常处理输出所需要的message和sourceLine。其中Exception继承自std::exception目的就是要重载what方法来输出错误信息。
TestFailure.h
这个TestFailure类里面有两种状态:failure和error。failure是我们测试中断言报错的,error就是在保护里面报出的错误。这个类聚集了Test,Exception,Source,这个类的输出跟TestResult的子类:TestResultCollector里面输出。
接下来该看看具体如何输出数据
Outputter.h
CompilerOutputter.h
TextOutputter.h
如何输出测试信息还有一个类叫:XMLOutputter,具体如何输出个人觉得没有什么好研究的,所以在这里就一笔带过了。