第一步:安装Gtest
git clone https://github.com/google/googletest
文件目录
Gtest共有两个测试框架:
gmock框架:gmock主要是用来mock待测试模块依赖的一些对象,帮助你在测试中去除不必要的依赖,类似与java的jMock和EasyMock。
gtest测试框架:类似于java里面的junit,用来做单元测试的
第二步:转移头文件
进入到googletest文件内
cd googletest
把include/gtest目录拷贝到全局头文件目录
cp -r include/gtest/ /usr/include/
然后在用到gtest的文件中,用#include <gtest/gtest.h>指令就可以让编译器找到gtest的头文件了。
第三步:编译gtest的链接库
g++ -std=c++11 -o gtest.o -I./include -I./ -c ./src/gtest-all.cc
注:我的g++需要指定c++11,不需要指定的就不需要。
然后会在目录下生成gtest.o
g++ -std=c++11 -I./include -I./ -c ./src/gtest_main.cc
会在当前目录产生gtest_main.o,这个不是必须的,这里面包含了gtest代码里提供的一个默认的main函数(执行RUN_ALL_TESTS()),所以链接到自己写的测试函数里,可以不用在test文件里写main函数,如有特殊需要,还是得自己写main函数。
ar -rv libgtest.a gtest-all.o gtest_main.o
然后把两个编译输出文件合并成一个静态库libgtest.a,可以拿出来,便于放到以后的gtest工程下链接用。
第四步:编写第一个测试
创建文件夹feds_demo,编写sample.cpp,sample.h,test.cpp
编译要测试的代码
g++ -c sample.cpp
编译单元测试的代码
g++ -c test.cpp
与libgtest.a或其他需要的库链接、生成可执行程序
g++ test.o sample.o libgtest.a -o test -lpthread
注:-lpthread是必须要有的,否则链接时会出错
执行可执行文件
./test
就能看见结果了。