C++单元测试

之前是作软件测试的,最近刚刚转到C++开发这行,发现须要了解和掌握的内容真是不少。html

废话很少说,最近想学学单元测试,而手上最最经常使用就是VS2010,那么就从它开始吧。windows

要说的是从一开始我就注意到在VS2010里面自带测试模块,想一想应该自己就可以很好的完成单元测试,因此继续研究。最初的时候是鼠标点击在函数上面右键弹出菜单有建立单元测试的功能,点击以后发现提示我使用的是非托管C++可以自动生成单元测试,因此继续研究。函数

下面就说下本人研究的一些经验吧。工具

VS2010(听说只有旗舰版有测试模块,别的版本我历来没有用过)自带的单元测试支持VB、C#、VC++(俗称托管C++,微软C++等),而对于标准C++是不直接支持的,上网查了不少资料,发现貌似是能够间接实现标准C++单元测试的。可是最终实现受到诸多限制。这里 金陵书生 的一篇关于单元测试(网址 )的简单精悍介绍使我对启发很大,可是注意它说在单元测试下,测试标准C++也须要懂得VC++,由于要用VC++来编写测试代码,对于我来讲,我自己了解过一些VC++,因此很是讨厌这种语言,根本不是C++,更像C#,因此我进行简单的尝试后就放弃了这个单元测试方案。单元测试

 

我开始研究另外一种单元测试方案,很主流很强大的googletest,估计就算不知道这个东西的人,上网一查就会一目了然。我要说的是,这个googletest对新手来讲很是简单,在官方的帮助文档中,只须要看一页内容就能初步上手进行单元测试,很是强大很是简单,源码也开发,感受就是很是完美。学习

 

下面对比一下VS2010和googletest单元测试优劣:测试

VS2010:缺点是有VS的时候才能使用,并且主要支持VB、C#、VC++,对于标注C++支持并很差,就算支持也是民间方法。它的最最大的优点就是对于长期使用VS的开发人员来讲这个工具用来特别顺手,不肯再投入更多时间精力去学习别的技术的人,可以短期就能够学会并使用VS单元测试方法。而且VS单元测试相关帮助文档很强大,在MSDN中有很详细横具体的操做方法。google

googletest:缺点是多是一个比较陌生的事物(对于没有接触过的人),优势太多:跨平台(支持微软windows,苹果OS,Linux等等);源码简单易懂,头文件和原文件就十几个;帮助文档强大,在google和wiki合做页面可以找到很是详细的使用说明和指南,而且对于新人来讲一页文档就可以学会googletest的单元测试;通用性强,能够像其它第三方库同样集成到VS里面进行使用,无需额外配置和学习工具;自动化执行,主函数都是现成的copy过来就能够用,用户只须要关心单元测试具体内容就能够。spa

 

光说不练估计有人对我说的会有质疑,下面是我实践示例(下载连接:点击这里):htm

示例介绍:

解决方案中==>test2014053102项目:主要编写测试代码,以dll形式生成

解决方案中==>test2014053103项目:暂时无用,不用看

解决方案中==>TestProjectWithVS项目:使用VS2010自带技术对test2014053102.dll进行单元测试

解决方案中==>TestProjectWithGoogleTest项目:使用googletest技术对test2014053102.dll进行单元测试

 

注:具体的项目配置等信息你们能够查看下载下来的项目文件。

相关文章
相关标签/搜索