学习和入门 Google 的 GTest(Google Test)是一项有益的技能,尤其适用于进行 C++ 程序的自动化测试。以下是一步步入门和使用 GTest 的过程,包括通俗解释和具体示例:

### 1. 安装 GTest

首先,你需要在你的计算机上安装 GTest。如果你使用的是 Ubuntu 系统,可以通过以下命令安装:

```bash
sudo apt-get install libgtest-dev
sudo apt-get install cmake # 如果你还没有安装 cmake
cd /usr/src/gtest
sudo cmake CMakeLists.txt
sudo make
sudo cp *.a /usr/lib
```

如果你是 Windows 用户,可以从 GitHub 下载 GTest 的源码,然后使用 CMake 构建并安装。

### 2. 创建一个基本的测试用例

创建一个简单的 C++ 程序,比如一个计算整数加法的函数,然后编写测试用例。首先是你的 C++ 函数(在 `math_functions.cpp` 和 `math_functions.h` 文件中):

**math_functions.h**
```cpp
#ifndef MATH_FUNCTIONS_H
#define MATH_FUNCTIONS_H

int add(int a, int b);

#endif
```

**math_functions.cpp**
```cpp
#include "math_functions.h"

int add(int a, int b) {
    return a + b;
}
```

接下来,创建一个测试文件 `test.cpp`,使用 GTest 来测试 `add` 函数:

**test.cpp**
```cpp
#include "math_functions.h"
#include <gtest/gtest.h>

TEST(MathTest, TestAdd) {
    EXPECT_EQ(3, add(1, 2));
    EXPECT_EQ(5, add(2, 3));
    EXPECT_EQ(7, add(3, 4));
}

int main(int argc, char **argv) {
    ::testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}
```

### 3. 编译和运行测试

为了编译和运行你的测试,你需要编写一个 `CMakeLists.txt` 文件,这个文件会告诉 CMake 如何构建你的项目:

**CMakeLists.txt**
```cmake
cmake_minimum_required(VERSION 3.10)
project(MyMathTest)

# 设置 C++ 标准
set(CMAKE_CXX_STANDARD 11)

# 寻找 GTest 库
find_package(GTest REQUIRED)
include_directories(${GTEST_INCLUDE_DIRS})

# 添加你的源文件和头文件
add_executable(runTests test.cpp math_functions.cpp)
target_link_libraries(runTests ${GTEST_LIBRARIES} pthread)
```

在终端中,运行以下命令来构建和运行测试:
```bash
cmake .
make
./runTests
```

### 4. 查看测试结果

执行测试后,你将在命令行看到每个测试用例的结果,显示它们是否通过。

通过上述步骤,你可以开始使用 GTest 来为你的 C++ 代码编写和执行自动化测试。随着经验的积累,你可以探索更高级的测试功能,如模拟对象、测试固件和参数化测试。

04-24 06:43