您的位置:首页 > 编程语言 > C语言/C++

什么单元测试?如何进行单元测试?什么是CppUnit?如何使用?

2017-11-11 16:05 239 查看
单元测试(Unit Testing),是指对软件中的最小可测试单元进行检查和验证。经常与单元测试联系起来的另外一些开发活动包括:代码走读、静态分析、动态分析。前面两个不需要对代码进行编译和执行。动态分析就是通过观察软件运行的的动作,来提供执行跟踪,时间分析,以及测试覆盖度方面的信息。单元测试是开发者编写的一小段代码,其实我们每天都在做单元测试,写了一个函数,除了极简单的外,总是要执行一下,看看功能是否正确,这可以叫临时单元测试,这种测试很不完整,代码覆盖率超过70%都很困难。

虽然不同程序的单元测试代码不尽相同,但测试代码的框架却非常相似,于是便出现了一些单元测试类库,CppUnit便是其中之一。CppUnit是一个开源测试框架,主要功能就是对单元测试进行管理,并可进行自动化测试。帮你解决类似下面这样的麻烦:

测试代码没有很好地维护而废弃,再次需要测试时还需要重写;

投入太多的精力,找bug,而新的代码仍然会出现类似bug;

写完代码,心里没底,是否有大量bug等待自己;

新修改的代码不知道是否影响其他部分代码;

由于牵扯太多,导致不敢进行修改代码;

.......

CppUnit的原理

我们都知道,测试要有测试用例,即为了某个目标而编制的一组测试输入、执行条件以及预期结果。在CppUnit中,一个或一组测试用例的测试对象称作Fixture(设施)。Fixture可以是一个对象或一个函数。有个Fixture,就可以针对Fixture可能出错的流程编写测试代码,这样对某个方面完整的测试被称为TestCase(测试用例)。通常写一个TestCase的步骤包括:

1.对Fixture进行初始化,及其他初始化操作,比如:生成一组被测试的对象,初始化值;

2.按照要测试的某个功能或者某个流程对Fixture进行操作;

3.验证结果是否正确;

4.对Fixture的及其他的资源释放等清理工作。

我们一般可以利用CppUnit的setUp函数完成步骤1,用tearDown函数完成步骤4,因为对于很多测试用例,步骤1和步骤4是相似的,具体测试用例函数在步骤2和步骤3部分。运行时CppUnit会自动为每个测试用例函数运行setUp,之后运行tearDown。

对fixture的所有测试用例可以被封装在CppUnit::TestFixture的子类中,然后定义这个Fixture的setUp和tearDown函数,为每个测试用例定义一个测试函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: