1. 概念
gtest,测试框架,是在不同平台上为编写C++测试而生成的。基于xUnit框架的测试结果,支持自动发现测试,丰富的断言集,用户定义的断言,death测试,致命与非致命的失败,类型参数化测试,各类运行测试的选项和XML的测试报告;
2. 实例
实例包含的文件:function.h、function.cpp、ut_all.cpp、ut_function.cpp、Makefile;
function.h:主要用于申明函数,还有就是code封装成库后,给用户使用时,一方面可以避免源码的外泄,另一方面可以更好的让用户了解库相关的暴露接口;
#ifndef _FUNCTION_H
#define _FUNCTION_H
int add(int num1, int num2);
#endif
function.cpp:接口的主要实现;
#include "function.h"
int add(int num1, int num2)
{
return num1+num2;
}
ut_function.cpp:主要用于在开发的过程中完成自测,便于降低产品在日后市场中出现bug的概率;
#include "gtest/gtest.h"
#include "function.h"
TEST(addtest, success)
{
ASSERT_EQ(2, add(1,1));
}
ut_all.cpp:视为测试接口的入口;
#include "gtest/gtest.h"
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
testing::InitGoogleTest(&argc,argv);
return RUN_ALL_TESTS();
}
Makefile:减少编译过程中,命令行输入的痛苦;
all:
g++ -o ut_test *.cpp *.h -lgtest -lpthread
3. 注意点
> 编译时,记得指定需要链接的库(example:gtest)
> 编译前,安装gtest,安装教程有很多,此处就不进行介绍