谷歌C++测试
来源:互联网 发布:马里兰艺术学院 知乎 编辑:程序博客网 时间:2024/06/06 05:13
gtest,英文全称是GoogleC++TestingFramework,英文简称是GoogleTest,中文译为“谷歌C++测试框架”,它是从谷歌内部诞生并受到业界追捧的一个非常优秀的测试框架,支持如自动发现测试、自定义断言、死亡测试、自动报告等诸多功能。
其他著名的自动化测试框架产品还有CppUnit、CxxTest、JUnit、PyUnit等。
如果你是一名开发工程师,或者你编写的程序要用到生产环境中,那么,你不可避免的需要学习和掌握一种自动化测试框架,以确保你的程序测试充分,质量上乘。
gtest官网教程原文,在这里。
【介绍:为什么要选择谷歌C++测试框架】
因为:“谷歌C++测试框架可以帮助你编写出更好的C++测试程序”。
无论你的开发是基于Linux、Windows还是Mac,只要你使用的是C++语言,gtest都能够帮助到你。
那么,到底什么才是好的测试,gtest又如何实现这种好的测试的呢?我们是这样认为的:
·1.测试应该是独立的且可重复的。
(如果一个测试的结果是依赖于另一个测试的结果的,将是件很痛苦的事情。而gtest可以有效的避免这一点,它会确保每一个测试以一个独立对象的形式存在。当一个测试失败时,gtest支持你在独立的环境中进行调试。)
·2.应该有一套方法较好的来组织我们的测试,这种组织方法要能够较好地反映程序代码的结构。
(gtest会将test分组到“testcase”中这样可以很好的来组织和管理所有的测试了。同时,testcases之间既可以共享信息,也可以嵌套。这种组织规则,会非常有利于记忆和管理。如果所有项目的测试都采用一致的组织规则,那么人员在测试项目间的迁移成本也会大大降低。)
·3.测试应该是可迁移的且可复用的。
(开源社区中有很多的代码是“平台中立的”,也就是兼容多种平台,因而,这些代码的测试也应该遵循“平台中立”的原则。基于这种考虑,gtest支持多种操作系统平台、多种编译器,所以,gtest可以很好的支持这类测试工作。)
·4.在测试失败时,要能够提供足够充分的测试信息。
(gtest并不会在首次失败后就停止工作,取而代之的是,gtest会停止当前这个测试,继续下一个测试。当然,你完全可以设置让gtest在继续下一个测试的同时,输出这次测试中非致命失败的相关信息,这样,你就可以在一个测试周期中,侦测和修复更多个bugs。)
·5.测试框架应该让开发者从琐碎重复的工作中解脱出来,让它们能专注在测试内容上。
(gtest会自动的扫描和跟踪所有定义的测试,而不会让开发者一个一个去列举。)
·6.测试应该是高效的。
(使用gtest,你可以复用不同测试中的资源,另外,set-up/tear-down也支持“一处定义,多处复用”的特性。)
由于gtest是基于xUnit框架设计实现的,所以如果你之前使用过JUnit或PyUnit的话,你会很容易上手;否则,你或许需要花上10分钟的时间来学习下相关的基础知识。
- c测试
- C/C++_lesson1~8测试
- C/C++_lesson9~14测试
- C语言测试
- C语言测试题
- 心理测试(C++)
- C语言测试
- 嵌入式c测试(zt)
- C/C++基础测试
- C语言测试
- C语言测试
- C 函数调用测试
- C语言测试
- C语言测试
- C语言测试题
- C测试小程序
- c测试环境属性
- C语言测试题
- C++中^的用法
- 16进制颜色代码(完全)
- 二叉树的非递归遍历(递归和非递归)
- 题目1368:二叉树中和为某一值的路径
- 几种session存储方式比较
- 谷歌C++测试
- VS未能正确加载 Microsoft.VisualStudio.Editor.......此处省略N个词
- 路由器设置的地址改了之后(路由器IP地址改了),忘记了,怎么找到这个IP?
- json数据解析时被遗忘的一个方法
- Java 单例设计模式
- c++重要的经验
- 解决HBase问题hbase.PleaseHoldException
- 基础问题[ 快速排序 ]、[ 归并排序 ]
- Java面试题之五