GoogleTest安装以及使用

介绍

Google Test(也称为gtest)是Google开发的一个用于C++的单元测试库。
它允许开发者方便地编写和运行测试用例,以确保代码的正确性和健壮性。
GoogleTest 提供了一系列的断言宏,如 ASSERT_, EXPECT_ 等,用于验证代码的行为。

Google Test 的特点

  • 易用性:Google Test 提供了一个简单易用的API,让开发者能够快速编写测试用例。
  • 强大的断言:提供了丰富的断言宏来检查各种条件是否满足。
  • 详细的失败报告:当测试失败时,Google Test 能够给出详细的失败信息,便于调试。
  • 灵活的测试组织:支持测试的分组和命名空间,使得大型项目也能很好地组织测试用例。
  • 跨平台:可以在多种操作系统上运行,包括 Windows, Linux, Mac OS X 等。

Ubuntu安装

当前环境
在这里插入图片描述
在这里插入图片描述

下载
https://github.com/google/googletest/archive/release-1.8.0.tar.gz
或者
https://gitee.com/mirrors/googletest/ 
解压
tar -xzvf googletest-release-1.8.1.tar.gz


在这里插入图片描述

cmake .
make
make install

在这里插入图片描述
在这里插入图片描述

centos7 安装gtest

当前环境
在这里插入图片描述
在这里插入图片描述

下载
https://github.com/google/googletest/archive/release-1.8.0.tar.gz
或者
https://gitee.com/mirrors/googletest/ 
解压
tar -xzvf googletest-release-1.8.1.tar.gz
cmake .
make

在这里插入图片描述

使用方法

包含gtest/gtest.h头文件

在测试文件中,首先需要包含Google Test的头文件gtest/gtest.h。

使用TEST()宏定义测试用例

TEST(TestSuiteName, TestName) {  
    // 测试代码  
}
  • TestSuiteName是测试套件的名称,用于将相关的测试用例分组在一起;
  • TestName是具体测试的名称,通常用于描述测试的目的。

使用Google Test断言进行值检查

Google Test提供了一系列的断言宏,如EXPECT_EQ、EXPECT_NE、ASSERT_EQ等,用于在测试体中检查预期值和实际值是否一致。这些断言宏能够帮助你验证代码的行为是否符合预期。

使用RUN_ALL_TESTS()宏运行测试

使用RUN_ALL_TESTS()宏来运行所有定义的测试用例。这个宏会返回一个整数,表示测试运行的结果。如果所有测试都通过了,它会返回0;如果有测试失败,它会返回非0值

测试代码

#include <gtest/gtest.h>  
#include <unistd.h>  
// 定义一个简单的加法函数  
int add(int a, int b) {  
    return a + b;  
}  
  
// 使用TEST()宏定义测试用例  
TEST(AddTest, PositiveNumbers) {  
    EXPECT_EQ(add(1, 2), 3); // 预期add(1, 2)的结果为3  
}  
  
TEST(AddTest, NegativeNumbers) {  
    EXPECT_EQ(add(-1, -2), -3); // 预期add(-1, -2)的结果为-3  
}  
  
// 主函数,用于运行所有测试用例  
int main(int argc, char **argv) {  
    testing::InitGoogleTest(&argc, argv); // 初始化Google Test  
    return RUN_ALL_TESTS(); // 运行所有测试用例  
}

编译

 g++ test_add.cpp -o test_add -lgtest

运行
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值