用CPPUnit做单元测试

Elizabeth ·
更新时间:2024-09-21
· 849 次阅读

CPPUnit是基于C++的单元测试框架,可以有效提高开发的系统质量。 引言: QA过程常采用两种测试方法: 1、单元测试(acceptance测试):为软件系统中的每一个逻辑单元制定的一系列验证方法。仅测试单元的功能,而不考虑各个单元之间的协作关系。 2、系统测试(集成测试):测试系统的功能,尤其是各单元模块之间的协作关系。 下面要讲的是如何采用CPPUnit对C/C++工程进行单元测试。 文章假设读者熟悉单元测试的概念及其重要性。 单元测试设计: 想一下开发团队中常常出现的一种场景:程序员正在使用Debugger工具测试代码。采用Debugger工具可以可以随时随地检查每个变量。步步跟踪,检查变量的值是否异常。Debugger是一种强有力的调试工具,但是调试速度相当慢,并且包含不少错误。在这种情况下调试是让人崩溃的。这些复杂有大量重复的验证方法是可以通过自动化的手段完成的,需要做的是选择合适的工具并编写少量代码。 下面要介绍的工具叫做“单元测试框架”,借助这种工具,可以通过编写一些小的模块来完成模块(可以是类、函数和库)的单元测试。 下面来看一个例子:编写一个小的模块,主要功能是求两数之和。其C语言代码如下: BOOL addition(int a, int b) {     return (a + b); } 测试单元编写成另外一个模块(C函数)。该模块测试所有可能的求两数之和的组合,通过返回True或False来判断被测模块是否通过了测试。代码如下: BOOL additionTest() {     if ( addition(1, 2) != 3)     {         return (FALSE);     }

    if ( addition(0, 0) != 0)     {         return (FALSE);     }

    if ( addition(10, 0) != 10)     {         return (FALSE);     }

    if ( addition(-8, 0) != -8)     {         return (FALSE);     }

    if ( addition(5, -5) != 0)     {         return (FALSE);     }

    if ( addition(-5, 2) != -3)     {         return (FALSE);     }

    if ( addition(-4, -1) != -5)     {         return (FALSE);     }

    return (TRUE); } 测试的情况包括: 正数+正数 0+0 正数+0 负数+0 正数+负数 负数+正数 负数+负数 每一次测试都是通过对比被测模块的返回值和期望值,如果二者不同,返回FALSE。如果终返回TRUE,说明模块通过了所有的测试。 这个用以测试其他模块的小模块(函数)被称为Test Case, 其中包含了程序员需要对被测单元的一系列检查。每一个确认(对被测单元的一次调用)都必须和被测单元相对应。在这个例子中,检查了“求和操作”在操作数符号不同的情况下的运行情况。当然了,还需要另外写一些Test Case来验证其他情况下的运行情况。比如其他一些常见的加法组合。



单元 cppunit 单元测试 测试

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章