gmock学习01---Linux配置gmock
本文目的
本文主要介绍gmock 1.6.0版本在Linux上如何部署和使用。
gmock是做什么的?
使用C++手动编写mock对象将会是一件十分耗时,易于出错,枯燥乏味的事情。gmock提供一整套mock 框架,帮助你完成这些脏活累活。
编译gmock
1 下载:gmock官方下载
2 上传:使用WinScp或其他工具将gmock_1.x.x.zip上传到linux机器,该linux上的gcc版本最好在4.0以上。
3 解压:使用命令“unzip gmock_1.x.x.zip”,解压后会在“gmock_1.x.x.zip”同一个目录下生成一个gmock_1.x.x目录,使用命令“mv gmock_1.x.x gmock”将该目录改命为gmock,设gmock目录的路径为GMOCK_HOME。
4 编译:使用如下些列命令编译
|
cd GMOCK_HOME/make # 跳转到Makefile目录 make # 编译 ln -s gmock_main.a libgmock.a # 为gmock_main.a制作符 # 合GNU标准的软链接 ll # 查看编译结果,如下图
|
5 验证:注意上面的截图,可以看见gmock_test这个文件,该文件用于测试,使用命令“./gmock_test”运行改程序,如果出现下面全部绿色的文字,说明你的gmock编译成功,环境搭建完成。

gmock_main.a中都有些什么
编译完gmock后吗,主要生成了一个静态库gmock_main.a。该库中包含了gmock的框架,同时,也包含了gtest框架,可以认为gtest是gmock的一个子集。在gmock_main.a中默认编译了一个main函数,该main函数会初始化gmock和gtest,并且执行所有的TEST或TEST_F宏定义的测试用例,所以使用gmock_main.a进行单元测试时,不能编写main函数,否则会出现多个main冲突。如果需要重写main函数,可以使用命令“make gmock.a”,重新编译,会生成文件gmock.a,如下图所示

那么此时你需要自己编写main函数和初始化gmock框架。
gtest不支持正则表达式
,gmock支持
gtest框架没有提供字符串正则表达式的api,但是gmock提供了,gmock没有重造轮子自己写一个正则的库,而是封装了<regex.h>中的相关api,在编译gmock时,会通过宏来判断系统中是否支持<regex.h>,如果系统不支持,那么gmock中的正则api将无法使用。下面的示例代码描述了如何使用正则API:

同时,也可以参考gmock的官方说明文档中的正则匹配相关部分。
使用gmock
附件中有一个工程,试用了gmock,感觉使用起来还是很方便的。看代码比看我的描述要快,我就不多啰嗦。这里,简单的描述如何编译该项目

该项目编译时使用的是gmock和gmock中自带的gtest,在编译过程中需要将该项目的根目录和gmock同一个层级。然后cd到该项目中,make就可以编译。通过“./mock_demo”运行该项目。如下图所示:

当然,这里只是简单的介绍了如何使用gmock,gmock还有很多使用技巧和方法大家可以自己去摸索总结。
附件:http://files.cnblogs.com/bourneli/gmock_learn.zip
相关资料
- gmock官方网站:http://code.google.com/p/googlemock/
- gmock的正则表达式:http://code.google.com/p/googlemock/wiki/CheatSheet#String_Matchers
- gmock官方wiki ::http://code.google.com/p/googlemock/w/list
- gtest官方网站:http://code.google.com/p/googletest/
gmock学习01---Linux配置gmock的更多相关文章
- 大数据学习之Linux基础01
大数据学习之Linux基础 01:Linux简介 linux是一种自由和开放源代码的类UNIX操作系统.该操作系统的内核由林纳斯·托瓦兹 在1991年10月5日首次发布.,在加上用户空间的应用程序之后 ...
- Python学习--01入门
Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...
- 深度学习主机环境配置: Ubuntu16.04+GeForce GTX 1080+TensorFlow
接上文<深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0>,我们继续来安装 TensorFlow,使其支持GeForce GTX 1080显卡 ...
- [转帖]22个必须学习的Linux安全命令
22个必须学习的Linux安全命令 http://os.51cto.com/art/201808/581401.htm Linux系统的安全性涉及很多方面,从设置帐户到确保用户合法,限制比完成工作所需 ...
- Redis学习01——介绍与搭建环境
Redis学习01介绍与搭建环境一简介二yum配置已经配置了的可以跳过三安装gcc四安装redis1 上传Redis到linux中2 解压到usrlocal下3 编译redis4 安装redis5 拷 ...
- 大数据学习之 LINUX
##大数据学习 古斌6.6 01. linux系统的搭建: 选用 Contos 6.5 x64位系统 (CentOS-6.5-x86_64-minimal.iso) 我选择的为迷你版 模板机: bla ...
- Redis学习笔记4-Redis配置详解
在Redis中直接启动redis-server服务时, 采用的是默认的配置文件.采用redis-server xxx.conf 这样的方式可以按照指定的配置文件来运行Redis服务.按照本Redi ...
- 深度学习主机环境配置: Ubuntu16.04 + GeForce GTX 1070 + CUDA8.0 + cuDNN5.1 + TensorFlow
深度学习主机环境配置: Ubuntu16.04 + GeForce GTX 1070 + CUDA8.0 + cuDNN5.1 + TensorFlow 最近在公司做深度学习相关的学习和实验,原来一直 ...
- Android Testing学习01 介绍 测试测什么 测试的类型
Android Testing学习01 介绍 测试测什么 测试的类型 Android 测试 测什么 1.Activity的生命周期事件 应该测试Activity的生命周期事件处理. 如果你的Activ ...
- JMeter学习-002-JMeter环境配置
本节主要介绍 JMeter 本地环境配置(JMeter 版本为 apache-jmeter-2.12),详细配置如下: 一.JDK配置 默认用户本地已经安装且配置好 JDK.若未配置,敬请参阅我的博客 ...
随机推荐
- eetcode 之String to Integer (atoi)(28)
字符串转为数字,细节题.要考虑空格.正负号,当转化的数字超过最大或最小是怎么办. int atoi(char *str) { int len = strlen(str); ; ; ; while (s ...
- 机器学习方法(七):Kmeans聚类K值如何选,以及数据重抽样方法Bootstrapping
欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术感兴趣的同学加入.我的博客写一些自己用得到东西,并分享给 ...
- servlet学习记录:Servlet中的service()方法
Servlet的生存时间是由init,service,destory方法构成,这里分析一下service这个方法 Servlet接口中定义了一个service()方法,而我们一般是使用HttpServ ...
- Java学习笔记(十三一)——Xml 常用知识总结
[前面的话] 在学习spring框架,发现很多地方都用到了Xml的知识,所以会过头来再学习学习Xml. 本章学习的是Xml的基础,所以基础性文章,选择性阅读. [Xml] 一.Xml初步了解 XML ...
- bzoj1030 AC自动机+dp
思路:建状态图,在状态图上dp. #include<bits/stdc++.h> #define LL long long #define ll long long #define fi ...
- GIT的安装及git状态的变更详解
一.安装git环境 (2)Git安装 Centos: yum install -y git Ubuntu: apt-get install git Windows安装git bash软件 注意不要使用 ...
- 洛谷P1908 逆序对 [权值线段树]
题目传送门 逆序对 题目描述 猫猫TOM和小老鼠JERRY最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计.最近,TOM老猫查阅到一个人类称之为“逆序对”的 ...
- SPOJ11469 Subset(折半枚举)
题意 给定一个集合,有多少个非空子集,能划分成和相等的两份.\(n\leq 20\) 题解 看到这个题,首先能想到的是\(3^n\)的暴力枚举,枚举当前元素是放入左边还是放入右边或者根本不放,但是显然 ...
- SublimeCodeIntel代码自动补全配置
主要使用python3,所有配置以python3为例.其他语言同理.利用sublimeCodeIntel插件可以实现自动提示python3代码.跳转追踪自定义函数.查看系统函数等.功能还是相当强大的. ...
- 【转载】Virtual Box下配置Host-Only联网方式详解
其实网络这类相关的文章很多,我只是想结合自己的实际情况,把我的经验写下来,给那些需要的人们吧. 主机:windows 7 虚拟机:CentOS6.0 VirtualBox:4.2.0 虚拟机在安装好之 ...
