原创:/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_*后面的语句将不
会执行。
在下一篇,我们
您可能关注的文档
- 2016年年度股东大会.PDF
- 2017-2018学年学生综合素质测评成绩汇总表.PDF
- 2017年2月中国微信.PDF
- 2017年Q4微博报价单.PDF
- 2018-2019里水镇路灯维护工程.PDF
- 2018年全国高等学校接受国内访问学者培养费标准和住宿情.PDF
- 2018年合作交流网站(运维)项目绩效评价报告.PDF
- 2018年度全市招商引资情况通报.doc
- 2018年开平市二轻集体企业联社部门决.PDF
- 2018年成都市武侯区人民检察院.doc
- 2026年小学寒假期间安全工作实施方案范文.docx
- 学校班级、小组、宿舍学生安全信息员管理制度.docx
- 学校交通(校车)安全管理制度.docx
- 人教版八年级上册历史精品教学课件 第六单元 中华民族的抗日战争 第17课 七七事变与全民族抗战 (6).ppt
- 人教版八年级上册历史精品教学课件 期末专题复习 专题二 中国人民近代化的探索 (2).ppt
- 人教版八年级上册历史精品教学课件 第二单元 近代化的早期探索与民族危机的加剧 第5课 甲午中日战争与列强瓜分中国狂潮 (2).ppt
- 人教版八年级上册历史精品教学课件 第七单元 人民解放战争 大概念引领下的大单元复习 (4).ppt
- 人教版八年级上册历史精品教学课件 第七单元 人民解放战争 第21课 人民解放战争的胜利 (2).ppt
- 人教版八年级上册历史精品教学课件 第三单元 资产阶级民主革命与中华民国的建立 第10课 中华民国的创建 (2).ppt
- 人教版八年级上册历史精品教学课件 第四单元 新民主主义革命的开始 第12课 新文化运动 (3).ppt
最近下载
- 电力工程项目汇报.pptx VIP
- 河北省2025年中考数学真题试卷.docx VIP
- 黔南州2025-2026学年度第一学期期末质量监测八年级历史试卷.pdf VIP
- 黔南州2024-2025学年度第一学期期末质量监测 物理.docx VIP
- 勾股定理同步练习.pdf VIP
- 信息安规+典型违章库复习测试卷附答案.doc VIP
- 黔南州2025-2026学年度第一学期期末质量监测八年级英语试卷.pdf VIP
- 深圳市中考数学真题试卷.doc VIP
- 2025-2026学年高一上学期期末考试物理试卷(含答案) .pdf VIP
- 黔南州2025-2026学年度第一学期期末质量监测八年级生物试卷.pdf VIP
原创力文档

文档评论(0)