你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:技术专栏 / Web开发
使用cppunit为c++工程做单元测试
 
用cppunit做单元测试的结构这部分为了和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脚本,这个脚本可以自动生成一个测试类的框架。
  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089