Google C++ Test Framework (Primer)

 

第一次学习翻译,感觉有点别扭,希望通过后面的努力能有所提高。

此次翻译的是:http://code.google.com/p/googletest/wiki/Primer 

 

引言:

    开始学习 Google C++ 测试框架

1. 简介:为什么需要 Google C++ 测试框架

2. 创建一个新的测试工程

3. 基本概念

4. 断言

     基本断言

 二进制比较

 字符串比较

    5. 简单测试

6. 测试装置:使用同一数据进行多次测试

7. 触发测试

8. 写主函数

  Visual C++ 用户的重要提示

9. 到哪里去

10. 了解一下限制

简介:为什么我们需要 Google C++ 测试框架

Google C++ 测试框架可以帮助你写更好的完成C++测试

不管你是在Linux,Windows,或者Mac上开发,只要你编写C++代码,Google Test 就对你有帮助。

所以,Google C++ 测试框架是如何符合 一个好的测试条件呢? 我们认为:

1. 测试应该是 独立的,可重复的。调试一个用例,这个用例依赖与其它用例的成功或失败,这是一件很痛苦的事。Google C++ 测试框架   

  通过不同的对象运行测试用例来实现用例间的隔离。当一个测试用例失败,Google C++ 测试框架允许你单独的运行这个用例来快速的调试。

2. 测试应该有好的组织 并且 能够 反映出测试代码的结构 ,Google C++ 测试框架将一下相关的测试用例分成一组,同一组中的测试用例可以

  共享数据跟子程序。 这种常用的模式可以便于学习和用例的维护。这种一致性在切换工程和开始新的代码时非常有用。

3. 测试应该是 可移植 和 可复用的。 开源社区 中的很多 代码是 平台无关的, 它们的测试也应该是平台无关的。Google C++ 测试框架可以运行

  在不同的系统上,用不同的编译器,有 或者 没有 异常处理, 所以 Google C++ 测试框架 测试用例可以很容易的使用通过不同的配置。(注:

  当前的发布版本只包含了 Linux 下的 脚本编译 ,我们正积极的使其他平台也能够脚本编译 )。

4. 当测试用例失败,应该为失败的原因提供尽可能多的信息。当第一个测试用例失败时,Google C++ 测试框架并不会终止,它只是终止当前的测试

  用例,并且继续运行下一个测试用例。当然 你可以 创建测试用例,在当前用例继续运行后,报告非致命的失败。这样,你就可以在一次测试中

  发现和解决更多的问题。

5. 测试框架应该将 测试用例写作人员从繁忙的家庭琐事中解放出来,让他们更加关注测试内容。Google C++ 测试框架 自动的记录定义的测试

  用例, 这样当运行测试用例时,就不需要使用者一个一个列出来。

6. 测试应该是快速的。使用 Google C++ 测试框架, 不同测试用例可以复用公共资源,只需 一次 建立 和 销毁, 而不会使用例间相互依赖。

因为 Google C++ 测试框架 基于 流行的 xUnit 体系结构,所以 如果你以前使用过 JUnit 或 PyUnit , 你将会感觉非常舒服。如果没用过,你只

需要 花 10 多分钟时间学习一些基本知识就可以开始了。所以,我们赶紧吧!

注: 在一些非正式场合,我们有时将 Google C++ 测试框架 称为 Google Test。

 

 

创建一个新的测试工程

使用Google Test 写一个测试程序时,你需要 将 Google Test 编译成 lib , 然后让你的测试程序链接 Google Test 的lib 文件,我们为一些流行的编译系统提供了编译文件: Visual Studio 的编译文件在 msvc 目录下 , Mac Xcode 的编译文件在 xcode 目录下 , GNU make 在 make 目录下, Borland C++ Builder 的编译文件在 codegear 目录下 , 并且 Google Test 根目录下有 自动脚本(不推荐)和 CMake 的 CMakeLists.txt(推荐)。如果你的编译系统不在这个列表里面, 你可以看一下 make/Makefile 来了解 Google Test 是怎么编译的(基本上 你想通过 GTEST_ROOT 来编译 src/gtest-all.cc 并且 你需要在搜索路径中添加 GTEST_ROOT/inclue , 这样GTEST_ROOT 就是Google Test 的跟目录 )  .

    一旦 Google Test 库 编译通过 , 你应该为你的测试程序 创建一个工程 或 生成目标工程。 确保 GTEST_ROOT/include 在搜索路径中,这样当 你编译测试程序时, 编译器就可以找到 "gtest/gtest.h" 。创建 你的测试工程 并 让测试工程链接 Google Test 库(比如,在Visual Studio 在gtest.vcproj中添加依赖来实现)。

如果你还有问题,看一下 Google Test 自己的测试程序是如何生成和使用Google Test 库的。

 

基本概念

当我们用Google Test时, 你是从写断言开始的,断言被声明用来检测一个条件是否为真。 一个断言的结果可以是成功的,非致命性失败 , 或致命性失败,这时它使当前的函数终止,否则程序继续运行。

测试用断言来验证被测试代码的行为,当测试失败时,它将崩溃 或 有一个失败的断言, 否则测试成功。

一个测试用例包括 一个 或 多个测试。你应该将测试用例分组,这样可以反应出被测试代码的结构。 当 一个测试簇里面的多个测试用例需要共享公共对象和子程序时,你应该将这些测试用例放在一个类容器中。

一个测试程序可以包含多个测试用例。

我们现在即将如何些一个测试程序,从一个断言的级别开始,到创建测试用例及测试簇。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值