您的位置:软件测试 > 开源软件测试 > 开源单元测试工具 > cppUnit
CppUnit--面向C++的测试框架
作者:网络转载 发布时间:[ 2014/1/9 14:58:12 ] 推荐标签:CppUnit 单元测试 框架

   CppUnit是自动化单元测试框架的c++实现版本。它是XUnit(包括如JUnit,PythonUnit,DelphiUnit等)家族中的一员,是一个专门面向C++的测试框架。CppUnit 是个基于 LGPL 的开源项目,初版本移植自 JUnit,是一个非常的开源测试框架。CppUnit 和 JUnit 一样主要思想来源于极限编程(XProgramming)。主要功能是对单元测试进行管理,并可进行自动化测试。

一. CppUnit 的原理

在 CppUnit 中,一个或一组测试用例的测试对象被称为 Fixture(设施,下文为方便理解尽量使用英文名称)。Fixture 是被测试的目标,可能是一个对象或者一组相关的对象,甚至一个函数。

有了被测试的 fixture,可以对这个 fixture 的某个功能、某个可能出错的流程编写测试代码,这样对某个方面完整的测试被称为TestCase(测试用例)。通常写一个 TestCase 的步骤包括:

    对 fixture 进行初始化,及其他初始化操作,比如:生成一组被测试的对象,初始化值;
    按照要测试的某个功能或者某个流程对 fixture 进行操作;
    验证结果是否正确;
    对 fixture 的及其他的资源释放等清理工作。

对 fixture 的多个测试用例,通常(1)(4)部分代码都是相似的,CppUnit 在很多地方引入了 setUp 和 tearDown 虚函数。可以在 setUp 函数里完成(1)初始化代码,而在 tearDown 函数中完成(4)代码。具体测试用例函数中只需要完成(2)(3)部分代码即可,运行时 CppUnit 会自动为每个测试用例函数运行 setUp,之后运行 tearDown,这样测试用例之间没有交叉影响。

对 fixture 的所有测试用例可以被封装在一个 CppUnit::TestFixture 的子类(命名惯例是[ClassName]Test)中。然后定义这个fixture 的 setUp 和 tearDown 函数,为每个测试用例定义一个测试函数(命名惯例是 testXXX)。

下面是个简单的例子:

class MathTest : public CppUnit::TestFixture {
 protected:
   int m_value1, m_value2;
 public:
   MathTest() {}
 // 初始化函数
   void setUp () {
     m_value1 = 2;
     m_value2 = 3;
   }
   // 测试加法的测试函数
   void testAdd () {
     // 步骤(2),对 fixture 进行操作
     int result = m_value1 + m_value2;
      // 步骤(3),验证结果是否争取
     CPPUNIT_ASSERT( result == 5 );
   }
   // 没有什么清理工作没有定义 tearDown.
 }

先写到这里,明天补充。

http://www.vckbase.com/document/viewdoc/?id=1258

http://www-128.ibm.com/developerworks/cn/linux/l-cppunit/index.html

http://www.evocomp.de/tutorials/tutorium_cppunit/howto_tutorial_cppunit_en.html

软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd