文章目录
单元测试
一、Google Test
Google Test(简称GTest) 是一个用于 C++ 编程语言的单元测试框架。它是由 Google 开发并开源的一个项目,旨在帮助开发者编写高质量的 C++ 代码。使用 Google Test,开发者可以轻松地为他们的 C++ 应用程序创建测试用例,确保代码的正确性和稳定性。
主要特点
- 支持多种平台和编译器:Google Test 支持 Windows、Linux、MacOS 等多个平台和多种编译器,包括 GCC、Clang、MSVC 等
- 丰富的断言:提供了一系列的断言宏来检查代码的正确性,例如
EXPECT_EQ
用于比较两个值是否相等。 - 测试固定装置:允许定义一个测试环境(称为测试固定装置),在多个测试中重用这个环境,以减少重复代码。
- 死亡测试:可以用来验证某些代码是否会如预期那样导致程序崩溃。
- 性能测试:支持编写性能测试用例,可以测量代码的执行时间。
- 易于集成:可以与各种构建系统(如 CMake、Bazel)和持续集成服务(如 Jenkins)集成。
使用步骤
- 下载 Google Test:可以从 Google Test的官方网站或 GitHub 仓库下载源代码。
- 编译 Google Test:将 Google Test源代码编译成静态库或直接包含源文件到你的项目中。
- 编写测试用例:使用 Google Test提供的宏和函数来定义测试用例。
- 运行测试:编译并运行包含测试用例的程序,查看测试结果。
示例代码
文件结构
root@z-VirtualBox:/disk3/gTest# tree
.
├── calculate_gtest.cc #测试用例,使用gTest测试函数功能
├── calculate.c #定义函数
├── calculate.h #声明函数
├── gtest #编译好的GTest
│ ├── include
│ └── lib
│ ├── libgtest.a
│ └── libgtest_main.a
└── libcalculate.so #使用g++编译出的动态库
待测试的代码: calculate.h
、calcualte.c
//calculate.h
#ifndef __CALCULATE_H__
#define __CALCULATE_H__
#include <stdio.h>
#include <stdlib.h>
int add(int a, int b);
int sub(int a, int b);
int divide(int a,int b);
#endif
//calcualte.c
#include "calculate.h"
int add(int a,int b