关于Google C++ Test框架

Google C++测试框架能帮助更好的进行C++的测试。

支持的平台:Linux,Windows,Mac

怎样算一个好的测试平台,为什么Google C++ Test会合适:

1. 测试应该是独立的、可重复的。如果一个测试的结果依赖于其它测试用例的结果,debug起来将会非常痛苦。Google C++测试框架在不同的对象中运行每一个测试,从而使测试集隔离开来。当一次测试失败,你可以独立执行这个测试用例来快速debugging。

2. 测试应该有好的组织结构,并且能很好的反应测试代码的结构。Google C++测试框架将相关测试分组到共享数据和子例程的测试集中。这种样式非常容易识别并且使测试易于维护。如果要切换工程,开始在新的代码库上工作,这种一致性非常有帮助。

3. 测试应该是可移植和可重用的。开源社区有很多平台无关的代码,所以测试也应该平台无关。Google C++测试框架可运行在不同的操作系统上,用不同的编译器,用(或不用)异常,因此Google C++测试框架能通过各种配置轻松完成。

4.当测试失败,应该提供尽可能多的相关信息。Google C++测试框架不会停止在第一个测试用例失败的地方。取而代之的是,仅停止当前的测试,继续下一个。你可以创建一个测试,用于报告非致命失败,这样,你能一次搞定多个bug。

5. 一个测试框架,应该让测试人员从繁琐的基础事务中解脱出来,去专注于测试内容。Google C++测试框架自动跟踪所有的测试定义,不需要使用者运行时一一进行枚举。

6. 测试需要关注效率。Google C++测试框架,可跨测试重用共享资源,只需付出执行一次set-up/tear-down的代价,而不需要进行互相依赖。

因为Google C++测试框架基于流行的xUnit架构,如果你使用过JUnit或PyUnit,你将会发现非常容易掌握。如果没有,将花费你10分钟来学习一些基础。

接下来,会用Google Test来代替Google C++测试框架。

注意命名规则

注意:请不要将一些术语,如Test,Test Case,Test Suite等弄混淆。

Google Test会使用Test Case表示相关测试组,但现在的一些公共组织包括ISTQB等,常常用Test Suite来替代。

Google Test中的Test,对应于其它组织(如ISTQB)的Test Case。对比图如下。

Google Test术语   ISTQB术语      意思

Test()                     Test Case     使用特定的输入,来执行一个特殊的程序,并确认其结果

Test Case               Test Suite     一个组件相关的多个测试用例

创建一个新的测试工程

使用google test创建一个新的测试工程,需要先编译google test成lib文件,并且让你的工程进行链接。我们对一些流行的编译系统提供了编译文件:msvc--用于visual studio,xcode--用于Max Xcode,make--用于GUN make,codegear--用于Borland C++编译器;根目录下CMakeLists.txt--用于CMake(推荐)。如果你的编译系统不在上述列表中,你可以参考make/Makefile,学习Google Test编译的方法(通常,编译src/gtest-all.cc 和include中的文件即可。)

当你编译好Google Test的库之后,你可以开始创建自己的测试工程并进行编译。确保你的工程包含了Google Test的库和头文件。

如果有问题,可参考Google test的测试用例是如何编译的。

基本概念

Google Test从写断言开始,断言是一个用于判断条件真假的语句。一个断言的结果可能是成功,非致命错误或致命错误。如果一个致命错误发生,会从当前函数中退出;否则程序会继续正常执行。

测试使用断言来确定测试代码的行为。如果一条用例崩溃或者断言失败,该用例失败,否则成功。

一个测试集包含一个或多个测试用例。你应该把你的测试用例分为不同的测试集,以与测试代码的结构一致。当一个测试集中

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值