关闭

适合于跨平台的C++测试工具

发表于:2013-8-29 11:02

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:wangyong0921    来源:51Testing软件测试网采编

  gtest,英文全称是Google C++ Testing Framework,英文简称是Google Test,中文译为“谷歌C++测试框架”,它是从谷歌内部诞生并受到业界追捧的一个非常优秀的测试框架,支持如自动发现测试、自定义断言、死亡测试、自动报告等诸多功能。

  其他著名的自动化测试框架产品还有CppUnit、CxxTest、JUnit、PyUnit等。

  如果你是一名开发工程师,或者你编写的程序要用到生产环境中,那么,你不可避免的需要学习和掌握一种自动化测试框架,以确保你的程序测试充分,质量上乘。

  gtest官网教程原文,在这里。

  【介绍:为什么要选择谷歌C++测试框架

  因为:“谷歌C++测试框架可以帮助你编写出更好的C++测试程序”。

  无论你的开发是基于LinuxWindows还是Mac,只要你使用的是C++语言,gtest都能够帮助到你。

  那么,到底什么才是好的测试,gtest又如何实现这种好的测试的呢?我们是这样认为的:

  1. 测试应该是独立的且可重复的。

  (如果一个测试的结果是依赖于另一个测试的结果的,将是件很痛苦的事情。而gtest可以有效的避免这一点,它会确保每一个测试以一个独立对象的形式存在。当一个测试失败时,gtest支持你在独立的环境中进行调试。)

  2. 应该有一套方法较好的来组织我们的测试,这种组织方法要能够较好地反映程序代码的结构。

  (gtest会将test分组到“test case”中这样可以很好的来组织和管理所有的测试了。同时,test cases之间既可以共享信息,也可以嵌套。这种组织规则,会非常有利于记忆和管理。如果所有项目的测试都采用一致的组织规则,那么人员在测试项目间的迁移成本也会大大降低。)

  3. 测试应该是可迁移的且可复用的。

  (开源社区中有很多的代码是“平台中立的”,也就是兼容多种平台,因而,这些代码的测试也应该遵循“平台中立”的原则。基于这种考虑,gtest支持多种操作系统平台、多种编译器,所以,gtest可以很好的支持这类测试工作。)

  4. 在测试失败时,要能够提供足够充分的测试信息。

  (gtest并不会在首次失败后就停止工作,取而代之的是,gtest会停止当前这个测试,继续下一个测试。当然,你完全可以设置让gtest在继续下一个测试的同时,输出这次测试中非致命失败的相关信息,这样,你就可以在一个测试周期中,侦测和修复更多个bugs。)

  5. 测试框架应该让开发者从琐碎重复的工作中解脱出来,让它们能专注在测试内容上。

  (gtest会自动的扫描和跟踪所有定义的测试,而不会让开发者一个一个去列举。)

  6. 测试应该是高效的。

  (使用gtest,你可以复用不同测试中的资源,另外,set-up/tear-down也支持“一处定义,多处复用”的特性。)

  由于gtest是基于xUnit框架设计实现的,所以如果你之前使用过JUnit或PyUnit的话,你会很容易上手;否则,你或许需要花上10分钟的时间来学习下相关的基础知识。

  好了,我们现在就开始!

51/512345>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号