CLion引入第三方库 gtest 并使用

发布时间:2023-07-24 23:43:43 作者:yexindonglai@163.com 阅读(1667)

gtest介绍

gtest是一个跨平台的(Liunx、Mac OS X、Windows、Cygwin、Windows CE and Symbian)C++单元测试框架,由google公司发布。gtest是为在不同平台上为编写C++测试而生成的。它提供了丰富的断言、致命和非致命判断、参数化、”死亡测试”等等。

gtest系列之TEST宏
  1. TEST(test_case_name, test_name)
  2. 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源码

直接在项目的根目录下载,

  1. git clone https://github.com/google/googletest.git

下载好了,如下图,是个cmake项目

嫌麻烦的话也可以直接在github上下载zip版本的源码

3、修改跟项目的CMakeLists.txt文件
  1. cmake_minimum_required(VERSION 3.24)
  2. project(gtest_lib)
  3. set(CMAKE_CXX_STANDARD 11)
  4. # 添加子项目
  5. add_subdirectory(googletest)
  6. # 指定gtest的头文件目录
  7. include_directories(googletest/googletest/include gtest_demo/lib/googletest)
  8. # 指定gmock的头文件目录
  9. include_directories(googletest/googlemock/include gtest_demo/lib/googlemock)
  10. add_executable(${PROJECT_NAME} main.cpp)
  11. # 指定将gtest gtest_main两个链接库,链接到gtest01工程中
  12. target_link_libraries(${PROJECT_NAME} gtest gtest_main)

改的是根目录的CMakeLists.txt文件,别改错了哈

4、修改 main.cpp文件

内容如下

  1. #include <iostream>
  2. #include "limits.h"
  3. #include <gtest/gtest.h>
  4. int add(int a, int b) {
  5. return a + b;
  6. }
  7. int sub(int a, int b) {
  8. return a - b;
  9. }
  10. TEST(SimpleTest, SimpleTest) {
  11. EXPECT_EQ(3, add(1, 2));
  12. EXPECT_EQ(8, add(2, 6));
  13. }
5、编译

在项目的根目录输入以下命令

  1. # 运行cmake,会生成makefile文件
  2. cmake .
  3. # 运行makefile
  4. make

运行完,会显示输出的可执行文件为gtest_lib,就大功告成了

6、运行

接下来,输入以下命令,运行可执行文件

  1. ./gtest_lib

运行成功,如下图

关键字c++