便利的开发工具 CppUnit 快速使用指南
本文从开发人员的角度,介绍 CppUnit 框架,希望能够使开发人员用最少的代价尽快掌握
这种技术。下面从基本原理,CppUnit 原理,手动使用步骤,通常使用步骤,其他实际问
题等方面进行讨论。以下讨论基于 CppUnit1.8.0。
背景
CppUnit 是个基于 LGPL 的开源项目,最初版本移植自 JUnit,是一个非常优秀的开源测
试框架。CppUnit 和 JUnit 一样主要思想来源于极限编程(XProgramming)。主要功能就
是对单元测试进行管理,并可进行自动化测试。这样描述可能没有让您体会到测试框架的
强大威力,那您在开发过程中遇到下列问题吗?如果答案是肯定的,就应该学习使用这种
技术:
测试代码没有很好地维护而废弃,再次需要测试时还需要重写;
投入太多的精力,找 bug,而新的代码仍然会出现类似 bug;
写完代码,心里没底,是否有大量 bug 等待自己;
新修改的代码不知道是否影响其他部分代码;
由于牵扯太多,导致不敢进行修改代码;
...
这些问题下文都会涉及。这个功能强大的测试框架在国内的 C++ 语言开发人员中使用的不
是很多。本文从开发人员的角度,介绍这个框架,希望能够使开发人员用最少的代价尽快
掌握这种技术。下面从基本原理,CppUnit 原理,手动使用步骤,通常使用步骤,其他实
际问题等方面进行讨论。以下讨论基于 CppUnit1.8.0。
回页首
1. 基本原理
对于上面的问题仅仅说明 CppUnit 的使用是没有效果的,下面先从测试的目的,测试原则
等方面简要说明,然后介绍 CppUnit 的具体使用。
首先要明确我们写测试代码的目的,就是验证代码的正确性或者调试 bug。这样写测试代
码时就有了针对性,对那些容易出错的,易变的编写测试代码;而不用对每个细节,每个
功能编写测试代码,当然除非有过量精力或者可靠性要求。
编码和测试的关系是密不可分的,推荐的开发过程并不要等编写完所有或者很多的代码后
再进行测试,而是在完成一部分代码,比如一个函数,之后立刻编写测试代码进行验证。
然后再写一些代码,再写测试。每次测试对所有以前的测试都进行一遍。这样做的优点就
是,写完代码,也基本测试完一遍,心里对代码有信心。而且在写新代码时不断地测试老
代码,对其他部分代码的影响能够迅速发现、定位。不断编码测试的过程也就是对测试代