前言
Google mock(以下简称gmock)和Google Test(以下简称gtest)是google的开源项目,他能够在测试中起到“打桩”的作用。举个例子,有A模块需要调用B模块,需要对A模块进行测试,但是B模块没有实现,那么就可以利用gmock和gtest对B模块进行打桩测试,来模拟B接口的实现测试A接口。本文主要介绍gmock和gtest在linux中的环境搭建。
准备gtest框架
(1) 获取gtest框架
命令行模式下输入:
git clone https://github.com/google/googletest
进入googletest目录,目录有以下内容:
(2) 编译源码
新建编译生成文件夹:mkdir build
进入build文件中,执行命令:cmake ..
继续执行:make
完事后,会在build的lib目录下有这几个文件:
其中图中libgmock.a、libgmock_main.a为gmock需要的文件,libgtest.a和libgtest_main.a为gtest需要的文件。
新建测试项目
(1)新建测试项目目录:mkdir TestGtest
(2)编写functions.h头文件
(3)编写functions.cpp
(4)编写单元测试代码functionsTest.cpp
(5)编写测试代码TestAll.cpp
编译与运行测试代码
(1)在TestGtest目录下新建lib目录。并复制libgtest.a到其中,再将googletest中的include复制到TestGtest下。
(2) 编译测试代码:
编译代码生成目标文件:g++ -o functions.o -c functions.cpp
编译测试代码生成目标文件:g++ -o functionsTest.o -c functionsTest.cpp -I ./include
编译运行测试代码生成目标文件:g++ -o TestAll.o -c TestAll.cpp -I ./include
(3)链接
链接所有.O文件与Gtest框架并生成main可执行文件:g++ -o main *.o -I ./include -L ./lib -lgtest -lpthread
(4)运行测试代码
执行main:./main
输出如下:
可以看到,共有两个用例,通过了两个用例例子中,暂时未使用到gmock,只介绍了gmock和gtest的环境搭建,gmock的具体用法不在此展开。