教程中国
PHOTOSHOP CS9.0中文版 MAYA 8.5 FOR WINDOWS Corel Painter v9.0 Flash MX2004 中文版 Illustrator cs2 中文版
VC++6.0含sp6 中英文版 VB6.0 +sp6 简体中文版 Borland Delphi 7汉化版 MSDN for vb6.0中文版 Visual Studio 2005简体
教程中国下属 文件存储共享专家BIBIDU.COM 提供大型软件,教材,源码,电影,音乐,图书等下载 更多精品请点此进入
  您目前所在位置: 教程中国 >> 编程基地 >> C++ >> 使用cppunit为c++工程做单元测试 RSS订阅
使用cppunit为c++工程做单元测试
教程(视频,书籍)下载:  ASP.NET AutoCAD 数据库 C# ASP java photoshop 网页设计 delphi 3dmax Flash C++ VB 张孝祥 实例   更多请进入BIBIDU搜索
IT搜索引擎   
用cppunit做单元测试的结构

学校的项目已经进入到了设计阶段,我参加的是web service的部分。这部分为了和core部分连接所以选择用c++来实现。于是看了一些有关针对c++的单元测试的framework,发现cppunit还是比较简单好用的。

第一步:如何安装 (我的运行环境: debian Linux, gcc)
cppunit 的安装是相当标准的linux的安装过程
a. 下载cppunit的源文件
b. 解压缩
c. 编译安装程序
  $./configure -prefix=/home/me
  $make
  $make install
这里 -prefix=/home/me的意思是把安装的根目录设置为/home/me(我的私人目录, 我不是管理员所以只好安装到自己的“家“了).
安装完成以后头文件存储在/home/me/include,库文件存储在/home/me/lib。
因为不是安装在默认的位置所以在编译和连结的时候要指定路径。
例如:g++ -g -L/home/me/lib -lcppunit -ldl -I/home/me/include Main.C

第二步: 下面我介绍一下个人认为比较实用的测试程序的结构。
这个测试类从CppUnit::TestFixture派生,并且由下面的部分组成:
a. setUp() 方法
   在这个方法里实现一些准备工作,例如生成一些被测类的实列
   setUp(){
      mc1 = new MyClass();
   }
b. tearDown() 方法
   在这个方法里实现扫尾的工作,例如释放内存
   tearDown(){
      delete mc1;
   }
c. 测试方法的方法
   例如,在被测类里有一个方法叫做:bool operator==(MyComplex &a), 我们
要写一个名字叫作test_Equality的方法来测试。
  void test_Equality() {
    CPPUNIT_ASSERT( *mc1 == *mc2 );
    CPPUNIT_ASSERT( !(*mc1 == *mc3) );
  }
CPPUNIT_ASSERT用来判断里面的表达是是否为真。
d. 把几个测试方法“打包”为一个suite。
  static CppUnit::Test *suite(){
    CppUnit::TestSuite *suiteOfTests = new CppUnit::TestSuite("TMyComplex");
    suiteOfTests->addTest(new CppUnit::TestCaller
        ("testEquality",
         &TMyComplex::testEquality));

    return suiteOfTests;
  }
测试类就是由这些方法组成, 下面是如何运行测试类的主程序:
  CppUnit::TextUi::TestRunner runner;
  runner.addTest(TMyComplex::suite());
  runner.run();
  return 0;
测试是由TestRunner来执行的。
由于很多的工作都是比较固定的,所以我写了一个Perl脚本,这个脚本可以
自动生成一个测试类的框架。

来源:十度教育
作者:
关键字:
发表日期:2006-8-1 11:10:10

网页显示有限 阅读全文请下载本文完整版WORD文档

上一篇:ANSI的Escape序列屏幕控制码   下一篇:关于open()`不懂的地方。


2008-10-16 6:46:49
本文的相类似文章
在学习中进步 在进步中成长 教程中国相随您的成长之路
华腾联合科技股份有限公司版权所有
广告联系:Rosibo@163.com