C++单元测试框架(gtest).PDFVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++单元测试框架(gtest).PDF

原创:/coderzh/ 整理: 玩转 Google 开源 C++单元测试框架 Google Test 系列(gtest)之一 - 初识 gtest 玩转 Google 开源 C++单元测试框架 Google Test 系列(gtest)之一 - 初识 gtest 玩玩转转GGooooggllee开开源源 CC++++单单元元测测试试框框架架GGooooggllee TTeesstt系系列列((ggtteesstt))之之一一 -- 初初识识ggtteesstt 一、前言 一、前言 一一、、前前言言 本篇将介绍一些 gtest 的基本使用,包括下载,安装,编译,建立我们第一个测试Demo 工程,以及编写一个最简单的测试案例。 二、下载 二、下载 二二、、下下载载 如果不记得网址,直接在 google 里搜 gtest,第一个就是。目前 gtest 的最新版本为1.3.0, 从下列地址可以下载到该最新版本: /files/gtest-1.3.0.zip /files/gtest-1.3.0.tar.gz /files/gtest-1.3.0.tar.bz2 三、编译 三、编译 三三、、编编译译 下载解压后, 里面有个 msvc 目录: 使用 VS 的同学可以直接打开 msvc 里面的工程文件, 如果你在使用的是 VS2005或是 VS2008,打开后会提示你升级,升完级后,我们直接编译里面的“gtest”工程,可以直接 编过的。 这里要提醒一下的是,如果你升级为 VS2008的工程,那么你的测试 Demo 最好也是 VS2008工程,不然你会发现很郁闷,你的 Demo 怎么也编不过,我也曾折腾了好久,当时 我升级为了 VS2008工程,结果我使用 VS2005工程建 Demo,死活编不过。(这里有人误 解了,并不是说只能在 VS2008中编译,在 VS2005中同样可以。如果要编译 VS2005版本, 最好保证 gtest 和你的测试工程都使用 VS2005工程。) 编译之后,在 msvc 里面的 Debug 或是 Release 目录里看到编译出来的 gtestd.lib 或是 gtest.lib 文件。 四、第一个 Demo 四、第一个 Demo 四四、、第第一一个个DDeemmoo 下面我们开始建立我们的第一个 Demo 了,假如之前使用的 VS2008编译的 gtest,那么, 我们在 VS2008中,新建一个 Win32 Console Application。接着就是设置工程属性,总 结如下: 1.设置 gtest 头文件路径 2.设置 gtest.lib 路径 3.Runtime Library 设置 如果是 Release 版本,Runtime Library 设为/MT。当然,其实你也可以选择动态链接 (/MD),前提是你之前编译的 gtest 也使用了同样是/MD 选项。 工程设置后了后,我们来编写一个最简单测试案例试试,我们先来写一个被测试函数: int Foo(int a, int b) { if (a == 0 || b == 0) { throw dont do that; } int c = a % b; if (c == 0) return b; return Foo(b, c); } 没错,上面的函数是用来求最大公约数的。下面我们就来编写一个简单的测试案例。 #include gtest/gtest.h TEST(FooTest, HandleNoneZeroInput) { EXPECT_EQ(2, Foo(4, 10)); EXPECT_EQ(6, Foo(30, 18)); } 上面可以看到,编写一个测试案例是多么的简单。 我们使用了 TEST 这个宏,它有两个参 数,官方的对这两个参数的解释为:[TestCaseName,TestName],而我对这两个参数的 定义是:[TestSuiteName,TestCaseName],在下一篇我们再来看为什么这样定义。 对检查点的检查,我们上面使用到了 EXPECT_EQ 这个宏,这个宏用来比较两个数字是否相 等。Google 还包装了一系列 EXPECT_* 和 ASSERT_*的宏,而 EXPECT 系列和 ASSERT 系 列的区别是: 1. EXPECT_* 失败时,案例继续往下执行。 2. ASSERT_* 失败时,直接在当前函数中返回,当前函数中 ASSERT_*后面的语句将不 会执行。 在下一篇,我们

文档评论(0)

duyingjie1 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档