gtest介绍
gtest是一个跨平台的(Liunx、Mac OS X、Windows、Cygwin、Windows CE and Symbian)C++单元测试框架,由google公司发布。gtest是为在不同平台上为编写C++测试而生成的。它提供了丰富的断言、致命和非致命判断、参数化、”死亡测试”等等。
gtest系列之TEST宏
TEST(test_case_name, test_name)
TEST_F(test_fixture,test_name) //多个测试场景需要相同数据配置的情况,用TEST_F。TEST_F test fixture,测试夹具,测试套,承担了一个注册的功能。
TEST宏的作用是创建一个简单测试,它定义了一个测试函数,在这个函数里可以使用任何C++代码并使用提供的断言来进行检查。
举个栗子
代码地址
https://gitee.com/yexindonglai/cpp_gtest_demo/tree/master
1、创建一个项目
选择 C++ Executable
创建好后如下图
2、下载gtest源码
直接在项目的根目录下载,
git clone https://github.com/google/googletest.git
下载好了,如下图,是个cmake项目
嫌麻烦的话也可以直接在github上下载zip版本的源码
3、修改跟项目的CMakeLists.txt文件
cmake_minimum_required(VERSION 3.24)
project(gtest_lib)
set(CMAKE_CXX_STANDARD 11)
# 添加子项目
add_subdirectory(googletest)
# 指定gtest的头文件目录
include_directories(googletest/googletest/include gtest_demo/lib/googletest)
# 指定gmock的头文件目录
include_directories(googletest/googlemock/include gtest_demo/lib/googlemock)
add_executable(${PROJECT_NAME} main.cpp)
# 指定将gtest gtest_main两个链接库,链接到gtest01工程中
target_link_libraries(${PROJECT_NAME} gtest gtest_main)
改的是根目录的CMakeLists.txt文件,别改错了哈
4、修改 main.cpp文件
内容如下
#include <iostream>
#include "limits.h"
#include <gtest/gtest.h>
int add(int a, int b) {
return a + b;
}
int sub(int a, int b) {
return a - b;
}
TEST(SimpleTest, SimpleTest) {
EXPECT_EQ(3, add(1, 2));
EXPECT_EQ(8, add(2, 6));
}
5、编译
在项目的根目录输入以下命令
# 运行cmake,会生成makefile文件
cmake .
# 运行makefile
make
运行完,会显示输出的可执行文件为gtest_lib
,就大功告成了
6、运行
接下来,输入以下命令,运行可执行文件
./gtest_lib
运行成功,如下图