gmock试用

萌新来体验一下gmock。

编译gmock库

https://github.com/google/googletest.git上clone下来,是一个唤作googletest的目录。因为现在gmock的代码已经整体和gtest合并了。

googletest目录下有个README.md,里面白底黑字提醒了编译器版本:

++++++++++++++++++++++++++++++++++++++++README.md
### Compilers

*   gcc 5.0+
*   clang 5.0+
*   MSVC 2015+

我机器上gcc是4.x的,所以先升级gcc,不然有可能变异不过的。

然后编译过程是酱紫的:

# 主目录下有googlemock和googletest,今天我们是来体验mock的
cd gooletest/googlemock
# 注意在googlemock下,cmake父录
cmake ../
# 编
make

编译结果

在googletest/googlemock/lib下面生成了四个编译结果

$pwd; ls
/home/myname/googletest/googlemock/lib
libgmock.a  libgmock_main.a  libgtest.a  libgtest_main.a

把这些库都放到他们应该在的地方,比如 /usr/lib64下面,当然也可以在/usr/lib64下创建软链接。

头文件

不要忘记了头文件,gtest和gmock的头文件分别在这里,放到/usr/include下或者创建软链接。

/home/myname/googletest/googlemock/include/gmock/

/home/myname/googletest/googletest/include/gtest/

一个例子

这里直接用了https://www.cnblogs.com/welkinwalker/archive/2011/11/29/2267225.html这个例子,编译命令:

g++ -o out *.cc -lgtest -lgmock -lpthread

一开始始终报各种undefined错误,仔细检查原来机器上之前安装了1.6.0版本的gtest,这导致当前刚编译的最新版本的gmock和机器上1.6.0版本的gtest不兼容,仔细检查/usr/lib64和/usr/include下面库和头文件是不是gtest和gmock都指向了同一个版本就可以编译成功了。

$./out
Returned Value: Hello World!

回头再来看原理。

上一篇:一次xxoo提权


下一篇:gtest集成到项目的cmake配置