Linux下Cppunit的简单运用
来源:互联网 发布:奔腾赛扬酷睿 知乎 编辑:程序博客网 时间:2024/05/10 02:12
操作系统:
软件版本:cppunit-1.12.0.tar.gz
代码调试通过
一、 CppUnit的原理
先简单介绍几个CppUnit的基本术语:
1、Fixture:一个或一组测试用例的测试对象。可以是你要测试的对象或者函数。
2、TestCase:测试用例。是对测试对象的某个功能或流程编写的测试代码。对一个Fixture,可能有多个测试用例。
3、TestSuite:同时运行的测试用例的集合。可以是一个fixture的多个测试函数、也可以是多个fixture的所有测试用例。
使用时,在测试的主文件中将TestCase注册到TestSuite中,并运行。
二、 下载与安装
可以在http://sourceforge.net/projects/cppunit/找到最新的源码并下载至本地。我下载的版本是cppunit-1.12.0.tar.gz
解压:tar -zxvf cppunit-1.12.0.tar.gz
进入cppunit-1.12.0的目录
//因为我是非root用户,没有对/usr/local/lib/和/usr/include的相应权限,//所以将安装的根目录设置为我的个人目录
.configure –prefix=/home/me
make
make install
这样,库文件就复制到/home/me了。
还要将cppunit-1.12.0中的头文件include复制到/home/me中。
三、利用cppunit建立测试的一般框架
通常将测试代码和被测的代码放在不同的工程里面,以免对我们要测试的代码造成污染,这也是运用cppunit的优点之一吧。
这样我们便有两个工程:
其一、待测工程:~/money
有两个文件:
Money.h
Money.cpp
测试工程:~/MoneyTest 该工程下有三个文件: Money_Test.h Money_Test.cpp Money_Test_Main.cpp 这三个文件的作用分别是: Money_Test.h:声明一个TestSuite,并将你所需要的测试用例都在此处进行声明 Mone_Test.cpp:编写测试用例 Money_Test_Main.cpp:运行测试。该文件与具体的测试用例无关。
CppUnit 提供的验证成功失败的方式有:
CPPUNIT_ASSERT(condition)
// 确信condition为真
CPPUNIT_ASSERT_MESSAGE(message, condition)
// 当condition为假时失败, 并打印message
CPPUNIT_FAIL(message)
// 当前测试失败, 并打印message
CPPUNIT_ASSERT_EQUAL(expected, actual)
// 确信两者相等
CPPUNIT_ASSERT_EQUAL_MESSAGE(message, expected, actual)
// 失败的同时打印message
CPPUNIT_ASSERT_DOUBLES_EQUAL(expected, actual, delta)
// 当expected和actual之间差大于delta时失败
关于CPPUNIT_ASSERT_EQUAL还有一点要说明,该宏对于expected和actual是有要求的,也就是所谓的Requirement:
- 具有相同的类型(比如都是std::string)
- 可以使用<<序列化到std::strstream(assertion_traits<T>::toString中指明)
- 能用==作比较(assertion_traits<T>::equal中指明)
不过,后两条可以通过为assertion_traits定制特化版本去除掉。
四、编译与调试
编译、链接动态库:
g++ -o test Money_Test.cpp Money_Test_Main.cpp ~/money/Money.cpp -I ~/money -I ~/cppunit/include -lcppunit -ldl -L ~/cppunit/lib
运行前要将共享库的目录放到LD_LIBRARY_PATH中。
export LD_LIBRARY_PATH=~/cppunit/lib:$LD_LIBRARY_PATH
运行:
./test
测试结果:
OK (4 tests)
说明所写的4个测试用例均成功。
参考资料
Tx7do@上海半丁 Linux下的CppUnit 的HelloWorld手记
李群:便利的开发工具 CppUnit 快速使用指南
http://www.ibm.com/developerworks/cn/linux/l-cppunit/index.html
CppUnit使用指南
- Linux下Cppunit的简单运用
- Linux下Cppunit的简单运用
- Linux下单元测试工具Cppunit的简单运用
- linux下cppunit的一个简单的例子
- Linux下的CppUnit 的HelloWorld手记
- Linux下的CppUnit 的HelloWorld手记
- Linux 下 CppUnit的安装与使用
- cppunit在linux下的安装使用
- Linux下安装cppunit
- (转)Linux下的CppUnit 的HelloWorld手记
- 关于cppunit的安装及运行(linux下)
- linux下tar的运用
- Linux下如何使用CppUnit进行单元测试
- Linux下使用CppUnit组织单元测试
- 试用CppUnit--一个简单的例子
- 试用CppUnit--一个简单的例子
- 使用CppUnit建立简单的测试环境
- cppunit 最简单的实现 vc windows
- Visual.Assist.X.V10.6.1827的破解补丁,正式发行版本,完善了对VS2010的支持,推荐更新 2010.06.11 (General release.)
- VC隐藏文件和判断文件是否存在
- Java垃圾回收机制
- 七个受用一生的寓言/转载
- ajax onkeyup 事件
- Linux下Cppunit的简单运用
- C#.Net 4 通过映射读取DbDataReader中的数据
- 南京开发商强拆寺庙,脱尼姑内裤当众羞辱
- Cygwin NFS Server HOWTO
- 足迹
- 详析VC中坐标系的建立
- POJ_1659_Frogs' Neighborhood
- PL/SQL连接远程数据库
- Microsoft SQL Server 2008 基本安装说明