目录
- 一、简单Demo
- 1.1 共同约定
- 1.2 小A任务
- 1.3 我的任务
- 1.4 常规运行
- 1.5 测试输出
- 二、基本流程
- 三、MOCK_METHOD
- 四、EXPECT_CALL
- 4.1 基本语法
- 4.2 _
- 4.3 Cardinalities
- 4.4 默认操作
第一篇文章(C++开发测试工具gmock的安装与使用超详解)和第二篇文章(C++开发测试工具gmock的使用详解)分别对gmock的安装、配置与使用案例进行了详细介绍,本文将对抽象接口类进行gmock打桩测试进行介绍,结合上文一起食用效果更佳哦~
一、简单Demo首先来编写一个简单Demo,编写代码之前,首先需要将解决方案的平台与目标程序一致,这里选择的是x64,然后版本也要与目标程序一致,这里选择的是release版本。 假设我和小A共同开发一款产品,他负责对不同的图形计算面积,而我负责根据面积进行相关处理(简单乘以一个固定系数)。
首先我们需要共同约定定义一个接口(公共成员变量Area):
class Shape {
public:
virtual double Area(void) = 0;
};
1.2 小A任务
小A的任务是根据不同的类型进行计算,例如计算矩形面积,代码如下:
//小A任务
class Rectangle : public Shape {
private:
double width, height;
public:
//构造函数
Rectangle(double w, double h)
{
width = w;
height = h;
}
// 析构函数
~Rectangle() { } // Do nothing
//计算矩形面积
double Area(void)
{
return width * height;
}
};
1.3 我的任务
//我的任务是根据小A计算得到的结果面积进行相关处理(简单乘以一个固定系数,这里以2为例):
double GetPrice(class Shape &s)
{
return s.Area() * 2;
}
1.4 常规运行
正常情况下,在main函数中应该调用小A编写的代码获取结果面积,然后再调用我的代码对面积进行相关处理,将处理后的结果打印输出:
int main(void)
{
Rectangle rect(3, 4);
std::cout
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?