zoukankan      html  css  js  c++  java
  • gmock学习01Linux配置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 # 查看编译结果,如下图

    clip_image002

    5 验证:注意上面的截图,可以看见gmock_test这个文件,该文件用于测试,使用命令“./gmock_test”运行改程序,如果出现下面全部绿色的文字,说明你的gmock编译成功,环境搭建完成。

    clip_image004

    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,如下图所示

    clip_image006

    那么此时你需要自己编写main函数和初始化gmock框架。

    gtest不支持正则表达式悲伤gmock支持微笑

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

    clip_image008

    同时,也可以参考gmock的官方说明文档中的正则匹配相关部分。

    使用gmock

    附件中有一个工程,试用了gmock,感觉使用起来还是很方便的。看代码比看我的描述要快,我就不多啰嗦。这里,简单的描述如何编译该项目

    clip_image010

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

    clip_image012

    当然,这里只是简单的介绍了如何使用gmock,gmock还有很多使用技巧和方法大家可以自己去摸索总结。

    附件https://files.cnblogs.com/bourneli/gmock_learn.zip

    相关资料

  • 相关阅读:
    Sql server 中count(1) 与 sum(1) 那个更快?
    Sql server 中count() 与 sum() 的区别
    ASP.Net Core 运行错误 Http Error 502.5 解决办法
    什么是语法糖?
    int和Integer有什么区别?如何相互转换呢?
    面向对象的基本特征有哪些方面?
    谈谈final finally finalize区别
    Overload和Override的区别
    String s=new String(“xyz”);创建了几个String Object?
    Gc是什么?为什么要有Gc?
  • 原文地址:https://www.cnblogs.com/bourneli/p/2677000.html
Copyright © 2011-2022 走看看