Google C++ Testing Framework(简称
gtest,http://code.google.com/p/googletest/)是 Google 公司发布的一个开源 C/C++单元
测试框架,已被应用于多个开源项目及 Google 内部项目中,知名的例子包括 Chrome Web 浏览
器、LLVM 编译器架构、Protocol Bu$ers 数据交换格式及工具等。
优秀的 C/C++单元测试框架并不算少,相比之下 gtest 仍具有明显优势。与 CppUnit 相比,
gtest 需要使用的头文件和函数宏更集中,并支持测试用例的自动注册。与 CxxUnit 相比,gtest
不要求 Python 等外部工具的存在。与 Boost.Test 相比,gtest 更简洁容易上手,实用性也并不逊
色。Wikipedia 给出了各种编程语言的单元测试框架列表(http://en.wikipedia.org/wiki/
List_of_unit_testing_frameworks)。
gtest 最新的发布版本是 1.5.0,目录结构如下。msvc 文件夹包含 Visual C++工程和项目文
件,gtest 要求 VC 编译器版本不低于 7.1(Visual Studio 2003)。samples 文件夹里有 10 个
使用范例。
一般情况下,我们的单元测试代码只需要包含头文件 gtest.h。gtest 中常用的所有结构体、类、
函数、常量等,都在命名空间 testing 中声明或定义,不过 gtest 已经把最简单常用的单元测试
功能包装成了一些带参数宏,因此常常可以忽略命名空间的存在。
按照 gtest 的叫法,宏 TEST 为特定的测试用例(test case)定义了一个可执行的测试
(test)。它接受用户指定的测试用例名和测试名作为参数(中英文皆可),并划出了一个作用域
供填充测试宏语句。一系列 TEST 的集合就能构成一个简单的测试程序。
评论3