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 的具体用法不在此展开。 返回搜狐,查看更多

责任编辑:

声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。