GTest介绍
gtest是一个由谷歌发布的跨平台开源C++单元测试框架,提供了丰富的断言、致命和非致命判断、死亡测试等,可以验证程序的逻辑性和健壮性,帮助更好的进行C++项目的测试。
GTest安装
源码获取
在安装之前需要获取googletest源码,源码的git仓库地址为:https://github.com/google/googletest
可以通过clone的方式进行获取:
#首先创建一个工作目录gtest
mkdir ~/gtest
cd ~/gtest
git clone https://github.com/google/googletest.git
也可以通过下载zip压缩包的方式,保存到工作目录并unzip解压。
编译
采用Cmake的方式编译,而在编译前首先创建build目录防止污染源码目录
mkdir build
cd build
cmake ../googletest -DCMAKE_INSTALL_PREFIX=./_install
make && make install
而后在install目录的下可以看到编译产出的文件:
包含了静态库文件。使用时将libtest前缀的两个静态库放到待测试的项目中main.cpp的同级目录下。
简单安装
如果只进行简单测试,可以直接使用yum进行安装,并在测试程序中直接#include<gtest/gtest.h>头文件即可使用:
yum -y install gtest
yum -y install gtest-devel
简单测试Demo
编写main.cpp
#include "gtest/gtest.h"
#include<iostream>
#include<string>
using namespace std;
int add(int a ,int b)
{
std::cout<<"a+b = "<< a+b <<endl;
return a+b;
}
TEST(fun , add_a)
{
EXPECT_EQ(-3,add(-2,-1));
EXPECT_EQ(-2,add(1,-3));
}
int main(int argc, char **argv){
::testing::InitGoogleTest(&argc,argv);
return RUN_ALL_TESTS();
return 0;
}
编译生成并执行可执行文件:
g++ main.cpp -lgtest -std=c++14 -lpthread -o test1
./test1
测试产生如下结果:
可以看到demo中定义的add函数测试结果符合预期。
在/googletest/samples/目录下有很多谷歌提供的demo测试用例,可以进行参考学习: