C++测试框架的选择

C++测试框架的选择

(金庆的专栏)

 

本文以表格形式总结了 “Exploring the C++ Unit Testing Framework Jungle” ( http://gamesfromwithin.com/exploring-the-c-unit-testing-framework-jungle ) 一文对各种单元测试框架的比较,并添加了原文所还没有加入的Google Test. 并添加了另一项特性比较,即对Mock对象的支持。

 

各比较项为:

1.加入新测试最小化工作量
2.便于修改和移植
3.便于装配/拆卸测试环境(fixtures)
4.对异常以及崩溃很好的控制
5.好的断言功能
6.支持不同的输出方式
7.支持测试套件(suites)
8.对Mock对象的支持

框架 1.工作量 2.可移植性 3.fixtures 4.异常 5.断言 6.各种输出 7. 测试套件 8.Mock
CPPUnit 需RTTI, STL 支 持 支持 很好 支持 支持 不支持
Boost.Test 一般 需RTTI, STL, Boost 支 持 支持最好 支持 支持 支 持 不支持
CppUnitLite 很好 不 支持 不支持 很差 不支持 不 支持 不支持
NanoCppUnit 仅Windows 支 持 未知 支持 不支持 支持 不支持
Unit++ 很多 一般 不 支持 一般 不支持浮点数 未知 支 持 不支持
CxxTest 很好 支 持 支持 支持 支持 支持 支持
Google Test 很好 支 持 支持 很好 未知 支持 不支持

 

原作者喜欢:CppUnit, Boost.Test, CppUnitLite, 和 CxxTest.

 

从支持Mock对象这一点来看,只有CxxTest支持。而Mock对于单元测试是很关键的。

 

另外摘录一个对CxxTest的评论( http://www.cppblog.com/shuiyuan2004/archive/2007/08/29/31105.html )

 

CxxTest添加新的测试工作量非常小;无须注册测试用例;可移植性很好;便于装卸;控制异常、崩溃方面的能力也不错;拥有良好的断言功能;支持多种输出方式;支持测试套件。

最大的优点:编译即测试方式,并且可以双击结果行立即定位到相应的源代码,相当吸引人;支持多种输出,输出结果较为详细;编写测试简单;

缺点:需要用到perl对测试代码进行文法扫描,生成可执行代码,需要用到makefile文件(不是必须);准备工作比较麻烦。

  • 0
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值