首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏全栈程序员必看

    gtest和gmock的关系_gtest教程

    /GMock源码 从Google网站上http://code.google.com/p/googlemock/downloads/list下载GMock源码(GMock源码中包含GTest源码,无需另外下载 GTest源码) 放到本地目录,我下载的GMock源码版本是gmock-1.7.0,选择放在/home/USERNAME/Download下,解压,生成gmock-1.7.0 cd gmock-1.7.0 / /usr/local/include -r 将gmock-1.7.0/include下面的gmock目录拷贝到/usr/local/include下 cp gmock-1.7.0/include /gmock/ /usr/local/include -r cp gmock-1.7.0/libgtest.a /usr/local/lib cp gmock-1.7.0/libgmock.a /usr 注:如果不用gmock,仅仅用到gtest,可以将上述gmock部分内容去掉。 对于 c++ 来说写单元测试和 mock 框架不是一件容易的事情。

    2.5K20编辑于 2022-11-10
  • 来自专栏搜狗测试

    linux下搭建gtest和gmock测试框架

    前言 Google mock(以下简称gmock)和Google Test(以下简称gtest)是google的开源项目,他能够在测试中起到“打桩”的作用。 举个例子,有A模块需要调用B模块,需要对A模块进行测试,但是B模块没有实现,那么就可以利用gmock和gtest对B模块进行打桩测试,来模拟B接口的实现测试A接口。 本文主要介绍gmock和gtest在linux中的环境搭建。 其中图中libgmock.a、libgmock_main.a为gmock需要的文件,libgtest.a和libgtest_main.a为gtest需要的文件。 ? 可以看到,共有两个用例,通过了两个用例例子中,暂时未使用到gmock,只介绍了gmock和gtest的环境搭建,gmock的具体用法不在此展开。

    5.3K30发布于 2019-09-17
  • 来自专栏腾讯移动品质中心TMQ的专栏

    基于 hook 和 gmock 开展单元测试

    C++的历史已经非常悠久了,开源框架也是非常多,其中google公司出品的gtest和gmock就是做C++单测的必备神器(https://github.com/google/googletest)。 C++允许用基类的指针来调用子类的函数,举个例子,就很容易明白了,如图6: 图6基类指针调子类函数 非虚函数不具备这样的特性,无法很方便的使用gmock。 ——Hook 提到hook,就不得不提百度在11年开源的Baiduhook,其提供了linux平台下C/C++程序的hook功能, 可以解决gmock只能mock虚函数的限制。 百度以及公司内部都基于hook以及gmock,对gtest进行了二次封装,形成了自己的单元测试框架btest和ttest。 总结,这两个测试框架都是基于Linux系统的hook技术,将hook和gmock完美结合,但是都依赖于Linux系统的底层库,需要特定版本的系统库。

    6.1K30发布于 2017-06-28
  • 来自专栏C/C++进阶专栏

    CC++生态工具链——接口模拟工具gmock

    三,gmock简介 gmock的全称是Google Mock,是Google于2008年推出的C++测试工具,gmock是编写和使用C++模拟类的框架。 gmock一开始是独立维护的,后面被集成进了gtest(GoogleTest),成为gtest的一个子模块,安装了gtest后就可以开始使用gmockgmock可以快速轻松地定义模拟对象,模拟对象提供与真实对象相同的接口。gmock允许开发者定义模拟对象的行为,例如调用哪些方法,以什么顺序,调用多少次,传哪些参数,返回什么样的值等等。 五,如何获取gmock 获取gmock,需要下载并编译GoogleTest开源库的源代码: git clone https://github.com/google/googletest cd googletest #开始构建和编译 make make install #编译后安装 编译结果,生成gtest和gmock的静态库: 六,gmock

    3.9K30编辑于 2023-02-23
  • 来自专栏方亮

    Google Mock(Gmock)简单使用和源码分析——源码分析

    GMOCK_METHOD0_(, , , m, __VA_ARGS__)         可以看到它实际上封装了GMOCK_METHOD0_。 这个参数的名称使用GMOCK_MOCKER_宏组装 #define GMOCK_MOCKER_(arity, constness, Method) \ GTEST_CONCAT_TOKEN_(gmock \ GMOCK_ARG_(tn, 1, __VA_ARGS__) gmock_a1, \ GMOCK_ARG_(tn, 2, __VA_ARGS__) gmock_a2) constness ).Invoke(gmock_a1, gmock_a2); \ } \ ::testing::MockSpec<__VA_ARGS__>& \ gmock_##Method(GMOCK_MATCHER , Method).With(gmock_a1, gmock_a2); \ } \ mutable ::testing::FunctionMocker<__VA_ARGS__> GMOCK_MOCKER

    5K20发布于 2019-01-16
  • 来自专栏方亮

    Google Mock(Gmock)简单使用和源码分析——简单使用

    本文我将以目前最新的Gmock1.7版本为范例,分析其实现原理。 (转载请指明出于breaksoftware的csdn博客)         Gmock是google开发的一套辅助测试的工具,它往往和GTest结合在一起使用。 Gmock就是一个强大的模拟接口的工具。 使用方法         首先我们讲解一下其主要的使用方法。 那我们如何使用Gmock辅助测试呢?          下一节,我们将阅读Gmock的源码,分析其实现脉络和原理。

    8.7K21发布于 2019-01-16
  • 来自专栏编程珠玑

    linux下使用gtest框架进行cc++测试-gmock环境搭建

    前言 google mock(以下简称gmock)也是google的开源项目,它能够在测试中起到“打桩”的作用。 举个例子,有A模块需要调用B模块,需要对A模块进行测试,但是B模块没有实现,那么就可以利用gmock对B模块进行打桩,来模拟B接口的实现。本文主要介绍gmock环境的搭建,不涉及具体使用。 gmock中已经包含了gtest的库,因此只需要gmock就可以使用gtest的所有测试功能。 新建测试项目 新建项目目录,比如我创建了一个TestWithGtest目录。 gmock目录下有刚才所说的include头文件,lib文件。 可以看到,共有一个用例,通过了一个用例 例子中,暂时未使用到gmock,只介绍了gmock的环境搭建,gmock的具体用法不在此展开。

    3K10发布于 2019-09-04
  • 来自专栏小巫技术博客

    【可测试性实践】C++单元测试:gtest & gmock

    引言 google test是目前C++主流的单元测试框架,本文介绍如何在工程引入gtest和gmock,并提供入门参考示例。 How:如何使用gtest & gmock? 在src/test_mock.cpp添加以下代码 #include <gtest/gtest.h> #include <gmock/gmock.h> // 定义一个接口 class MyInterface 使用指南 Google Mock(gmock)是 Google Test 的一个扩展库,专门用于创建和使用模拟对象。 写在最后 本文通过黄金思维圈来思考引入单元测试带来的价值,并基于C++工程来接入gtest和gmock来完成基础单测和mock场景的使用。

    93610编辑于 2025-06-16
  • 来自专栏orientlu

    Google 单元测试框架

    使用 gtest(gmock) 方便我们编写组织 c++ 单元测试。 使用 gmock gmock 现在已经和入 gtest 的代码库, 1.8 和之后的版本直接在 gtest github 主页中获取,低版本仍然在原 github主页。 编译 编译说明 gmock 编译需要依赖 gtest, 准备好 gtest 和 gmock (同一个版本)后,手动编译的方法如下: 设置好 gtest 和 gmock 的工程路径,或者在下面命令中直接替换源路径 }/include -I${GMOCK_DIR} \ -pthread -c ${GMOCK_DIR}/src/gmock-all.cc ar -rv libgmock.a gtest-all.o 测试程序 参考 gmock 编程指导和 codebook gmock mock 对象,可以定义函数期望行为,如被调用时返回的值,期望被调用的次数,参数等,如果不满足就会报错。

    2.5K20发布于 2018-09-13
  • 来自专栏全栈程序员必看

    cmake -D_cmake -G

    GTEST_ROOT}/include) add_executable(test test.cpp) target_link_libraries(test GTest::gtest GTest::gmock_main GTest::gmock GTest::gtest_main ) gtest_discover_tests(test) 这次配置正确了,但是出现如下错误: error LNK2038: GTEST_ROOT}/include) add_executable(test test.cpp) target_link_libraries(test GTest::gtest GTest::gmock_main GTest::gmock GTest::gtest_main ) 之后运行正常。

    2.9K10编辑于 2022-11-11
  • 来自专栏啄木鸟软件测试

    Google Mock介绍

    gmock允许开发者创建模拟对象,这些对象可以在单元测试中代替真实的依赖项,使得测试更加灵活和独立。通过使用gmock,开发者可以专注于测试代码逻辑的正确性,而不必担心外部依赖的复杂性。 以下是选择gmock的一些主要理由: l灵活性:gmock支持高度定制化的模拟行为,可以模拟复杂的依赖关系。 l易用性:gmock的API设计简洁直观,易于学习和使用。 l社区支持:作为Google的产品,gmock拥有活跃的社区和丰富的文档资源。 l集成性:gmock可以与Google Test无缝集成,提供一站式的测试解决方案。 #include <gmock/gmock.h> #include <gtest/gtest.h> class NetworkService { virtual std: #include <gmock/gmock.h> class Database { public: virtual ~Database() {} virtual std:

    1.1K10编辑于 2024-09-10
  • 来自专栏光城(guangcity)

    C++ 项目之Googletest单元测试

    Mocking Framework 源码下载地址: https://github.com/google/googletest/releases Googletest中包含两个模块,分别是gtest与gmock 然后项目中创建ext目录,里面分为两块 第一块:includes 包含gmock与gtest的include文件,对应于gcc -I参数,头文件路径,包含以.h结尾的头文件 第二块:libs 包含gmock 与gtest的libs文件,对应gcc -L参数,库文件路径,里面包含的是一些.so或.dll等动态或静态链接库 ├── ext │ ├── includes │ │ ├── gmock │ ${BASE_INCLUDES}/gmock/include) set(GTEST_LINK_DIR ${BASE_LIBS}/gtest/lib/) set(GMOCK_LINK_DIR ${BASE_LIBS (${GMOCK_LINK_DIR}) 然后为每个test配上链接库即可.

    4.5K20发布于 2019-09-20
  • 来自专栏HappenLee的技术杂谈

    C++雾中风景番外篇2:Gtest 与 Gmock,聊聊C++的单元测试

    正是由于 Gmock 的加持,让 Gtest 在多种测试框架之中脱颖而出。 这里要引出本章的主角 Gmock 了,接下来笔者将编写一个简要的 Mock对象并进行单元测试,来展示一下 GMock 的用法。 这里我们用 Gmock 模拟一个 kv 存储引擎,并运行一些简单的测试逻辑。 由上述代码可以看到,这里我们用寥寥数十行代码就模拟出了一个 KV 存储引擎,可见 Gmock 的强大。 这里要注意,在通过 Gmock 来编写 Mock Object 时,能够模拟的方法是对于原抽象类之中的virtual 方法。

    5.2K51发布于 2018-11-01
  • 来自专栏sofu456

    p2p协议(webrtc编译)

    ABSL_CC_TEST_SRCS}) target_include_directories(${_NAME} PUBLIC ${ABSL_COMMON_INCLUDE_DIRS} PRIVATE ${GMOCK_INCLUDE_DIRS absl::algorithm_container absl::base absl::core_headers absl::memory absl::span gmock_main import("//webrtc.gni") config("gmock_config"){ } config("gtest_config"){ } rtc_source_set("gmock_main "){ } rtc_source_set("gtest_main"){ } rtc_source_set("gtest"){ } rtc_source_set("gmock

    2.7K30发布于 2020-11-03
  • 来自专栏10km的专栏

    linux下protobuf 下载并cmake编译安装全过程脚本

    protobuf_BUILD_TESTS=off,这是因为protobuf的CMakeLists.txt中默认定义protobuf_BUILD_TESTS=on, 而当protobuf_BUILD_TESTS=on时,需要gmock github.com/google/googlemock),否则cmake会报如下错误: CMake Error at tests.cmake:2 (message): Cannot find gmock gmock是google公司推出的一款开源的白盒测试工具,对于我们一般的应用来说,不需要gmock提供的功能,所以这里可以将protobuf_BUILD_TESTS=off,避免麻烦。

    3.1K60发布于 2018-01-03
  • 来自专栏机器人课程与技术

    蓝桥ROS机器人课程之无限扩展∞∞∞(程序设计案例)

    enable_testing() -- Using CATKIN_TEST_RESULTS_DIR: /home/shiyanlou/Code/demo/build/test_results -- Found gmock sources under '/usr/src/gmock': gmock will be built -- Looking for pthread.h -- Looking for pthread.h for pthread_create in pthread - found -- Found Threads: TRUE -- Found gtest sources under '/usr/src/gmock enable_testing() -- Using CATKIN_TEST_RESULTS_DIR: /home/shiyanlou/Code/demo/build/test_results -- Found gmock sources under '/usr/src/gmock': gmock will be built -- Found gtest sources under '/usr/src/gmock': gtests

    67220编辑于 2022-05-01
  • 来自专栏搜狗测试

    protobuf详解

    github.com/google/protobuf (1) 安装依赖 如官网所列,protoc有如下依赖:Autoconf,automake,libtool,curl,make,g++,unzip,gmock 其中gmock依赖于libtool。 (2) 源码下载 ? (3) 源码编译 ?

    22.8K73发布于 2019-08-09
  • 来自专栏Kindem的博客

    Explosion 开发笔记 (四)

    googletest/build/lib/Debug/gtest_maind.lib Win/googletest/Lib/Debug cp googletest/build/lib/Debug/gmock_maind.lib googletest/build/lib/Release/gtest.lib Win/googletest/Lib/Release cp googletest/build/lib/Release/gmock.lib build/lib/Release/gtest_main.lib Win/googletest/Lib/Release cp googletest/build/lib/Release/gmock_main.lib googletest/include/gtest Win/googletest/Include/gtest cp -r googletest/googlemock/include/gmock Win/googletest/Include/gmock - name: Building Glslang run: | cmake

    1.1K40编辑于 2022-08-12
  • 来自专栏AIUAI

    Caffe2 - (一)Source 安装及问题解决

    basestring ImportError: No module named past.builtins 解决方案: 安装 future package: sudo pip install future 2. gmock /gmock.h ubuntu下 google gmock 安装.

    1.7K60发布于 2019-02-18
  • 来自专栏腾讯移动品质中心TMQ的专栏

    腾讯TMQ在线沙龙回顾|C++单元测试

    答:ttest目前尚未开源,但ttest用到的核心功能—hook,这个是开源的,大家可以基于此来对gmock进行二次开发,hook开源URL为:https://code.google.com/archive 答:针对C语言,目前比较好的开源单测框架就是gtest了,只是需要针对gmock借助于hook技术做下二次开发,才能比较方便的进行mock。

    2.2K50发布于 2018-02-08
领券