GoogleTest之gMock: Macros

news/2025/1/15 6:34:41/

目录

  • EXPECT_CALL

EXPECT_CALL

EXPECT_CALL(mock_object,method_name(matchers...)) 创建一个mock对象mock_object,这个对象有一个名为method_name的方法,方法的参数为matchers…。
EXPECT_CALL必须在任何mock对象之前使用。
以下方法的调用,必须按以下顺序进行:

EXPECT_CALL(mock_object, method_name(matchers...)).With(multi_argument_matcher)  // Can be used at most once.Times(cardinality)            // Can be used at most once.InSequence(sequences...)      // Can be used any number of times.After(expectations...)        // Can be used any number of times.WillOnce(action)              // Can be used any number of times.WillRepeatedly(action)        // Can be used at most once.RetiresOnSaturation();        // Can be used at most once

详细说明:

  • With(multi_argument_matcher)
  • Times(cardinality):mock函数期望被调用的次数
    • cardinality参数为以下值:
      • AnyNumber():任意次
      • AtLeast(n):至少n次
      • AtMost(n):至多n次
      • Between(m, n):m到n次之间
      • Exactly(n) or n:n次,如果n为0则不被调用
    • 如果Times没有调用,GoogleTest的处理规则如下:
      • WillOnce和WillRepeatedly都没有指定,默认调用Times(1)
      • 如果有n次WillOnce()但没有WillRepeatedly(),n>=1,cardinality为Times(n)
      • 如果有n次WillOnce()和一次WillRepeatedly(),n>=0,cardinality为AtLeast(n)
    • Times 最多只能被调用一次
  • InSequence

http://www.ppmy.cn/news/104277.html

相关文章

日撸 Java 三百行day56-57

文章目录 day56-57 kMeans 聚类1.kMeans聚类理解2.代码理解2.1代码中变量的理解2.2代码理解 day56-57 kMeans 聚类 1.kMeans聚类理解 无监督的机器学习算法,其中k是划分为几个簇,并且选择k个数据作为不同簇的聚类中心,计算每个数据样本和聚…

redux与react-redux状态集中管理

一、redux:可用于react、Vue等中 redux应用:状态的管理,共享状态,Redux用一个单独的常量状态树(state对象)保存这一整个应用(如tab选项卡的状态、城市等需要应用在整个页面的信息)的状态。其本…

Windows下利用Anaconda创建多个CUDA环境

参考 https://blog.csdn.net/qq_42395917/article/details/126237388 https://blog.csdn.net/qq_42406643/article/details/109545766 (待学习补充) https://blog.csdn.net/qq_43919533/article/details/125694437 (待学习补充) 安装cudatoolkit和cudnn # 前提是我已经安装了…

JAVA基础 - 如何使用split方法?

写在前面 在工作中一直使用split进行字串的分隔,但是始终没有认真研究过该方法,今天在使用该方法时遇到了一些问题,特进行学习记录。 遇到的问题 在使用“|”作为字串的分隔符的时候,分隔结果和预期不一样。 方法定义 // 从方…

Android使用多模块+MVI+Koin+Flow构建项目框架

Android使用多模块MVIKoinFlow构建项目框架 前言模块路由核心接口,用于在模块中绑定路由对应关系使用建造者模式定义传递的参数创建路由加载核心类, 本质上包含了一个全局路由表跳转类使用 MVI封装介绍,本质上使用flow作为核心定义数据类型,该…

I2C通信协议MPU6050

目录 I2C通信协议 硬件 软件 I2C时序 MPU6050 I2C通信协议 硬件 为了避免总线没协调好导致电源短路,配置为开漏输出,所有设备输出低电平不输出高电平,即右图。又为了避免高电平造成的引浮空,(第三点)总…

浏览器兼容性:CSS 回退属性

一个 CSS 类可以由许多声明组成,每个声明都具有property: value语法的语法: .cls {property: value; } 可以为同一个属性设置不同的值。稍后出现的值会覆盖它之前的值。浏览器将尝试使用最后的声明。在无法识别声明的情况下,它将回退到以前…

MapReduce【数据压缩】

目录 概述 压缩的优缺点 优点 缺点 压缩的原则 MapReduce支持的压缩编码 压缩算法对比 压缩性能比较 压缩方式的选择 Gzip 压缩 Bzip2 压缩 Lzo 压缩 Snappy 压缩 压缩位置选择 压缩位置选择 1、输入端采用压缩 2、Mapper输出采用压缩 3、Reducer输出采用压缩…