上一篇文章(C++开发测试工具gmock使用详解——对抽象接口类进行gmock打桩并测试)主要介绍了对抽象接口类进行gmock打桩的基本流程并利用简单Demo进行测试。本文将介绍gmock打桩的进阶案例,结合上文一起食用效果更佳哦~
一、Mock深入理解
当开发者在单元测试、模块接口测试时,当这个模块需要依赖另外一个/几个类,而这时这些个类还没有开发好(因为某些原因),这时我们就可以定义了Mock对象来模拟那些没开发好类的行为。
Mock框架可以帮助比较方便、轻松地实现这些假的依赖类。
接下来介绍一下gmock的进阶代码,加深大家对于gmock打桩的了解。
二、进阶Demo
进阶代码实现海龟turtle运动的一个程序。
2.1 共同约定
与其让我编写的应用程序直接与系统 API 通信,不如将 API 包装在一个接口中(interface),然后编写代码实现该接口:
//接口
class Turtle {
public:
//控制turtle运动是否留下痕迹
virtual void PenUp() = 0; //画笔抬起
virtual void PenDown() = 0; //画笔落下
//控制turtle运动方向
virtual void Forward(int distance) = 0; //前进
virtual void Turn(int degrees) = 0; //转向
virtual void GoTo(int x, int y) = 0; //前往(x,y)位置
//获取turtle当前位置
virtual int GetX() = 0; //获取x的坐标
virtual int GetY() =</