什么是Mock?
Mock:类似模拟器,是预期编程的对象,它们形成它们期望接收的调用的规范。
按照个人理解:比如当我们在单元测试、模块的接口测试时,当这个模块需要依赖另外一个/几个类,而这时这些个类还没有开发好(那名开发同学比较懒,呵呵),或者是这些类在测试的时候所用时间太久(可能它们依赖了很多其它的库或者使用了昂贵的资源),也或者你想要用它来测试一些不容易造成的错误等等一系列问题这时我们就可以定义了Mock对象来模拟那些类的行为。
说得更直白一些,就是自己实现一个假的依赖类,对这个类的方法你想要什么行为就可以有什么行为,你想让这个方法返回什么结果就可以返回怎么样的结果。
但是让C++程序员自己去实现mock是十分枯燥,繁琐的,所以我们可以使用google mock库来帮我们轻松的创建mock类并且提供它们的行为
gmock和gtest在VS下的配置教程
1.首先去 https://github.com/google/googletest 开源网站。
然后解压下载的压缩包。
然后去打开googlemock文件,在msvc文件夹下找到与你当前安装visual studio版本所对 应的文件夹(例如,vs2015就打开名为“2015”的文件夹),在这里要注意因为该下载的资源只有VS2005,VS2010,VS2015,三种版本,如果是其他VS的版本选择比你VS版本低的文件(例如你是VS2013,那么就打开VS2010)
然后点击gmock.sln(前提要有VS编译器)打开,对gmock进行编译。
再编译时可能出现错误,如果提示没有V140构建工具之类的,那么就是你在前面选择文件夹打开的时候选择了比你安装VS版本更高的版本。还有种错误就是第54行出错 #include “src/gtest-internal-inl.h” ,这个时候只需要将它改成 #include “../src/gtest-internal-inl.h”即可
gtest的配置和gmock是一样的步骤,按照上面步骤来即可。
测试使用
这里以新建好的空C++解决方案为例,依次进行以下步骤为该项目配置googletest、googlemock环境
1.按路径:项目 -> 属性 打开项目属性配置界面
2.
配置路径: 在“库目录”中加入Debug文件夹路径(你的Debug文件夹在这里:你的环境配置文 件包自定义存放位置\googlemock\msvc\你选择的vs版本文件名\Debug)
同上,在“包含目录”中添加:
googlemock文件夹下的include文件路径:你的环境配置文件包自定义存 放位置\googlemock\include
googletest文件夹下的include文件路径:你的环境配置文件包自定义存放 位置\googletest\include
3.配置附加依赖项,依次找到:链接器 -> 输入 -> 附加依赖项 o 添加路径:你的环境配置文件包自定义存放位置\googlemock\msvc\你选择 的vs版本文件名\Debug\gmock.lib
4.确保Google Mock使用的内存模型和项目一致,依次找到:C/C++ -> 代码生成 -> 运行库 o 将运行库由初始的“多线程调试DLL(/MDd)”改为“多线程调试(/MTd)”