使用Google Test的一个简单例子

本文提供了一个使用Google Test进行单元测试的简单示例,包括一个计算阶乘的函数及其测试代码。博客详细介绍了代码实现、测试用例以及在Linux和Win32平台上如何编译和运行测试,最终结果显示所有7个测试用例均通过。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本博客http://blog.youkuaiyun.com/livelylittlefish 贴出作者(三二一@小鱼)相关研究、学习内容所做的笔记,欢迎广大朋友指正!

0. 引子

 

本例是从 gtest-1.5.0 自带的 sample 中的 sample1 改写而来,笔者只添加了一个求 n 的阶层的函数,如下。

void Factorial(int n, int & result )

{

    result = 1;

    for (int i = 1; i <= n; i++)

        result *= i;

}

目的是想测试像这样将返回值放在参数中返回的函数。

对于该函数,添加的单元测试代码如下。

TEST (FactorialTest , Mytest )

{

    int result = 0;

    Factorial (5, result);

    EXPECT_EQ (120, result);

}

1. 要测试的代码</

### Google Test 简单使用示例 以下是基于 Google Test 框架的一个简单示例,用于演示如何编写和运行单元测试用例[^2]。 ```cpp #include <gtest/gtest.h> // 被测试的函数 int add(int a, int b) { return a + b; } // 单元测试用例 TEST(MathTest, AddFunction) { EXPECT_EQ(5, add(2, 3)); // 验证加法结果是否正确 EXPECT_EQ(0, add(-1, 1)); // 验证边界情况 EXPECT_EQ(-3, add(-2, -1)); // 验证负数相加的情况 } // 主函数,用于运行所有测试用例 int main(int argc, char **argv) { ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); } ``` 上述代码展示了如何使用 Google Test 编写一个简单单元测试。`TEST` 宏定义了一个测试用例,其中 `MathTest` 是测试套件的名称,`AddFunction` 是测试用例的名称。通过 `EXPECT_EQ` 断言验证 `add` 函数的行为是否符合预期[^3]。 --- ### Google Test 的安装与配置 在使用 Google Test 示例之前,需要确保框架已正确安装和配置。以下是一个基本的安装步骤概述: 1. 下载 Google Test 源码。 2. 使用 CMake 构建并生成库文件。 3. 在项目中链接 Google Test 库,并包含头文件路径。 具体操作可以参考官方文档或相关教程[^2]。 --- ### Test Fixture 示例 如果需要对多个测试用例共享相同的初始化和清理逻辑,可以使用 Test Fixture 功能。以下是一个示例: ```cpp #include <gtest/gtest.h> class MathTest : public ::testing::Test { protected: void SetUp() override { a = 5; b = 10; } void TearDown() override { // 清理逻辑(如果需要) } int a, b; }; TEST_F(MathTest, Addition) { EXPECT_EQ(15, a + b); } TEST_F(MathTest, Subtraction) { EXPECT_EQ(-5, a - b); } int main(int argc, char **argv) { ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); } ``` 在此示例中,`MathTest` 类继承自 `::testing::Test`,并通过 `SetUp` 和 `TearDown` 方法实现共享的初始化和清理逻辑[^1]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值