Google C++ Testing Framework Primer
Gtest 下载地址: http://github.com/google/googletest
翻译:Ray Li (ray.leex@gmail.com)
修改日期:2008 年 7 月 6 日
原文参见:http://code.google.com/p/googletest/wiki/GoogleTestPrimer
Introduction:为什么需要 Google C++测试框架?
Google C++ 测试框架帮助你更好地编写 C++测试。
无论你是在 Linux,Windows,还是 Mac 环境下工作,只要你编写 C++代码,Google 测试
框架都可以帮上忙。
那么,哪些因素才能构成一个好的测试?以及,Google C++ 测试框架怎样满足这些因素?
我们相信:
1. 测试应该是
独立
、
可重复
的。因为其他测试成功或失败而导致我们要对自己的测试进
行 debug 是非常痛苦的。Google C++ 测试框架通过将每个测试在不同的对象中运行,
使得测试分离开来。当一个测试失败时,Google C++ 测试框架允许你独立运行它以
进行快速除错。
2. 测试应该能够被很好地
组织
,并反映被测代码的结构。Google C++ 测试框架将测试
组织成测试案例,案例中的测试可以共享数据和程序分支。这样一种通用模式能够很
容易辨识,使得我们的测试容易维护。当开发人员在项目之间转换,开始在一个新的
代码基上开始工作时,这种一致性格外有用。
3. 测试应该是
可移植
、
可重用
的。开源社区有很多平台独立的代码,它们的测试也应该
是平台独立的。除开一些特殊情况,Google C++ 测试框架运行在不同的操作系统上、
与不同的编译器(gcc、icc、MSVC)搭配,Google C++ 测试框架的测试很容易与不
同的配置一起工作。
4. 当测试失败时,应该提供尽可能多的、关于问题的
信息
。Google C++ 测试框架在第
一个测试失败时不会停下来。相反,它只是将当前测试停止,然后继续接下来的测试。
你也可以设置对一些非致命的错误进行报告,并接着进行当前的测试。这样,你就可
以在一次“运行-编辑-编译”循环中检查到并修复多个 bug。
5. 测试框架应该能将测试编写人员从一些环境维护的工作中解放出来,使他们能够集中
精力于测试的
内容
。Google C++ 测试框架自动记录下所有定义好的测试,不需要用
户通过列举来指明哪些测试需要运行。
6. 测试应该
快速
。使用 Google C++ 测试框架,你可以重用多个测试的共享资源,一次
性完成设置/解除设置,而不用使一个测试去依赖另一测试。
因为 Google C++ 测试框架基于著名的 xUnit 架构,如果你之前使用过 JUnit 或 PyUnit 的
话,你将会感觉非常熟悉。如果你没有接触过这些测试框架,它也只会占用你大约 10 分钟
的时间来学习基本概念和上手。所以,让我们开始吧!
Note:本文偶尔会用“Google Test”来代指“Google C++ 测试框架”。