学习和入门 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++ 代码编写和执行自动化测试。随着经验的积累,你可以探索更高级的测试功能,如模拟对象、测试固件和参数化测试。