本文目的

本文主要介绍gmock 1.6.0版本在Linux上如何部署和使用。

gmock是做什么的?

使用C++手动编写mock对象将会是一件十分耗时,易于出错,枯燥乏味的事情。gmock提供一整套mock 框架,帮助你完成这些脏活累活。

编译gmock

下载:gmock官方下载

上传:使用WinScp或其他工具将gmock_1.x.x.zip上传到linux机器,该linux上的gcc版本最好在4.0以上。

解压:使用命令“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。

编译:使用如下些列命令编译

cd GMOCK_HOME/make # 跳转到Makefile目录

make # 编译

ln -s gmock_main.a libgmock.a # 为gmock_main.a制作符

合GNU标准的软链接

ll # 查看编译结果,如下图

验证:注意上面的截图,可以看见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/
声明:如有转载本博文章,请注明出处。您的支持是我的动力!文章部分内容来自互联网,本人不负任何法律责任。

本文转自bourneli博客园博客,原文链接:http://www.cnblogs.com/bourneli/archive/2012/09/08/2677000.html,如需转载请自行联系原作者

gmock学习01---Linux配置gmock相关推荐

  1. gmock学习02---编写自己的Matcher与如何让编译器识别被mock的重载函数

    本文目的 gmock框架中自带Matcher只针对c++内置类型,如string,int,float等等,有时候无法满足项目要求,所以需要编写自己的Matcher对象.本文介绍如何使用gmock提供的 ...

  2. Linux学习笔记12——配置ftp、squid、Tomcat、Samba、MySQL主从

    Linux学习笔记12 Linux学习笔记12 配置FTP服务 配置pure-ftpd 开机启动 上传下载文件 配置vsftpd CentOS 70安装配置Vsftp服务器 搭好vsftp之后出现55 ...

  3. Day 01嵌入式学习之Linux基础知识和命令操作

    学习嵌入式开发的随堂笔记 Day 01嵌入式学习之linux基础知识和命令操作 1.英文: read:读,r字母 write:写,w字母 execute:执行,运行,x字母 directory:目录, ...

  4. 多路径配置udev_学习笔记:Linux多路径配置 multipath实现设备用户组绑定详细设置...

    天萃荷净 Linux多路径软件配置,通过multipath实现设备用户组绑定详细设置 现在的Linux系统中,很多都会使用系统自带的multipath多路径软件,在以前的版本中,我们一般通过multi ...

  5. nginx学习文档之二 配置负载均衡-linux配置负载均衡

    #linux配置负载均衡 linux下配置tomcat负载均衡和windows下是一样的 安装完nginx后直接修改conf下的nginx.conf文件即可 配置文件如下: #user nobody; ...

  6. tesla p100 linux,Ubuntu16.04深度学习开发环境配置(TeslaP100+cuda9.0+tensorflow)

    Ubuntu16.04深度学习开发环境配置(TeslaP100+cuda9.0+tensorflow) 1. 显卡驱动安装 选择对应显卡型号的驱动下载 https://www.nvidia.com/D ...

  7. 【深度学习】基于深度学习的linux服务器,需要搭建哪些服务,一步步搭建深度学习的环境,cuda,pytorch,opencv,ftp服务, nfs服务 docker等等

    来来回回的安装服务器,是时间写个pipline了,在这里主要记录下生产环境下的一台基于深度学习的linux服务器,需要搭建那些服务 文章目录 前言 一.开工 1.1 切换yum源 1.2 minico ...

  8. Android Graphics Tests 程序学习01

    转载自:http://zhoujinjian.cc/2018/12/20/Android%20Graphics%20Tests%20%E7%A8%8B%E5%BA%8F%E5%AD%A6%E4%B9% ...

  9. 51CTO学习笔记--Linux运维故障排查思路与系统调优技巧视频课程(高俊峰)

    51CTO学习笔记--Linux运维故障排查思路与系统调优技巧视频课程 第一课 Linux运维经验分享与思路 1.一般把主机名,写到hosts下    127.0.0.1    hostname,因为 ...

  10. Linux学习之三-Linux系统的一些重要配置文件

    Linux学习之三-Linux系统的一些重要配置文件 1.网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0 说明: DEVICE=eth0        ...

最新文章

  1. 稀疏矩阵之python实现
  2. ROS机器人程序设计(原书第2版)3.4 设置动态参数
  3. 做数学与拼乐高的若干相似之处
  4. pythonreplace回调函数,python回调函数返回非
  5. Python 函数 -next()
  6. [Link]选择一个 Python Web 框架:Django vs Flask vs Pyramid
  7. Spring 事务传播原理及数据库事务操作原理
  8. Linux中设置Git显示颜色
  9. Java应用开发的一条重要经验:先建立基础设施
  10. mysql服务启动失败
  11. 【JY】力荐佳作《结构地震分析编程与应用》
  12. Informatic中如何设置每月初,和每周五、周六跑批
  13. 1人30天44587行代码,分享舍得网开发经验
  14. java 定义泛型方法_Java泛型类与泛型方法的定义详解
  15. 人工智能服务器中涉及到哪些技术
  16. 微信分享开发:准备工作[微信公众平台以及微信中控服务配置](一)
  17. 领域模型的概念:失血 贫血 充血 胀血
  18. 1096:数字统计(C C++)
  19. 美国大学计算机科学专业排名2019,2019年美国大学计算机专业排名
  20. 知名企业面试、笔试题

热门文章

  1. java swing实现简单图片显示(测试生成图片快捷方式)
  2. python IO编程-StringIO和BytesIO
  3. RabbitMQ—AMQP协议重要概念介绍
  4. HDU - 1223 DP 分类
  5. 播放视频比较好的框架
  6. 976 AlvinZH想回家(背包DP大作战T)
  7. [转] MySQL 查询表数据大小的总结
  8. Linux基本命令(1)管理文件和目录的命令
  9. fast_recovery_area无剩余空间(ORA-19815)
  10. 黑客与画家 part1 版权声明 part2 O'Reilly Media,Ina.介绍