使用 Visual Studio GoogleTest编写 C/C++ 单元测试——入门篇

入门教程

Visual Studio 新建 GoogleTest项目,一路选默认参数

pch.h

cpp 复制代码
#pragma once

#include "gtest/gtest.h"

int add(int a, int b);

pch.cpp

cpp 复制代码
#include "pch.h"

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

test.cpp

cpp 复制代码
#include "pch.h"

TEST(TestCaseName, TestName) {
  EXPECT_EQ(4, add(1,3));
  EXPECT_TRUE(add(1,2)==3);
}

编译运行

成功

[C++] gtest入门教程

开始尝试google test单元测试工具(又是MTd/MDd搞的鬼!)附带VC运行库详解

对现有解决方案添加GoogleTest项目

在当前解决方案下,新建GoogleTest项目

引用自己要测试的工程,配置相关属性(C++ 附加包含目录等)

cpp 复制代码
#include "pch.h"
#include "要测试的头文件.h"
SLineProcessor lineProcessor;
TEST(TestCaseName, TestName) {
  EXPECT_EQ(lineProcessor.bClose, 1);
  EXPECT_TRUE(true);
}

运行

搞定

如何使用GoogleTest 测试C++重构代码

要使用Google Test来测试C++重构的代码,你可以按照以下步骤进行操作:

  1. 集成Google Test:首先,将Google Test框架集成到你的项目中。可以通过下载Google Test源代码并将其添加到你的项目中,或者使用包管理工具(如vcpkg)进行安装。

  2. 创建测试文件:为每个需要测试的模块创建对应的测试文件。通常,测试文件的命名约定是在源文件的基础上添加"_test"后缀。

  3. 编写测试用例:在测试文件中,使用Google Test提供的宏和断言来编写测试用例。例如,使用TEST()宏定义一个测试用例,并在其中使用断言宏(如EXPECT_EQ()ASSERT_TRUE()等)进行期望结果的验证。

  4. 使用Google Test框架的断言:Google Test提供了许多断言宏来帮助验证测试结果是否符合预期。这些断言宏可以比较值、判断异常情况、检查容器等等。详细的断言列表和用法可以在Google Test文档中找到。

  5. 运行测试:使用适当的命令行工具或集成到IDE中的插件来运行测试。一般情况下,你需要提供可执行文件名称,并指定运行测试的参数,如过滤器(指定要运行的特定测试用例)和输出结果的格式。

  6. 分析测试结果:查看测试结果报告,了解哪些测试通过,哪些失败。如果有失败的测试,查看详细错误信息以帮助定位问题。

  7. 修复问题:根据失败的测试用例和错误信息,找出导致失败的原因,并修复代码中的问题。确保修复后再次运行单元测试以确认问题已解决。

总之,使用Google Test测试重构的C++代码与以前一样,你只需在新的测试文件中重新编写测试用例,使用Google Test提供的断言宏来验证测试结果即可。这样可以确保重构后的代码仍然能够通过相同的测试用例,并保持代码的质量和稳定性。

chatgpt生成

相关推荐
liu****7 分钟前
一.脚手架介绍以及部分工具使用
开发语言·数据结构·c++·手脚架开发
fish_xk22 分钟前
c++类和对象(上)
c++
R-G-B1 小时前
哈希表(hashtable),哈希理论,数组实现哈希结构 (C语言),散列理论 (拉链发、链接发),散列实现哈希结构,c++ 实现哈希
c语言·哈希算法·散列表·哈希表·数组实现哈希结构·散列实现哈希结构·c++ 实现哈希
历程里程碑1 小时前
C++ 6 :string类:高效处理字符串的秘密
c语言·开发语言·数据结构·c++·笔记·算法·排序算法
天庭鸡腿哥1 小时前
无须激活,安装即是Pro版!
microsoft·macos·visual studio·everything
武帝为此1 小时前
【字典树 C++ 实现】
开发语言·c++
未来之窗软件服务1 小时前
幽冥大陆(四十八)P50酒店门锁SDK 苹果object c语言仙盟插件——东方仙盟筑基期
c语言·开发语言·酒店门锁·仙盟创梦ide·东方仙盟·东方仙盟sdk
Azxcc02 小时前
cpp-httplib:路径参数解析类剖析
c++·后台开发·httplib
曼巴UE52 小时前
UE C++ 字符串的操作
java·开发语言·c++
天天进步20152 小时前
Linux 实战:如何像查看文件一样“实时监控” System V 共享内存?
开发语言·c++·算法