使用 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生成

相关推荐
Trouvaille ~4 分钟前
【Linux】TCP Socket编程实战(一):API详解与单连接Echo Server
linux·运维·服务器·网络·c++·tcp/ip·socket
坚果派·白晓明15 分钟前
在鸿蒙设备上快速验证由lycium工具快速交叉编译的C/C++三方库
c语言·c++·harmonyos·鸿蒙·编程语言·openharmony·三方库
小镇敲码人23 分钟前
深入剖析华为CANN框架下的Ops-CV仓库:从入门到实战指南
c++·python·华为·cann
踏过山河,踏过海1 小时前
【qt-查看对应的依赖的一种方法】
qt·visual studio
风指引着方向1 小时前
图编译优化全链路:CANN graph-engine 仓库技术拆解
c语言
张张努力变强1 小时前
C++ STL string 类:常用接口 + auto + 范围 for全攻略,字符串操作效率拉满
开发语言·数据结构·c++·算法·stl
小镇敲码人1 小时前
探索CANN框架中TBE仓库:张量加速引擎的优化之道
c++·华为·acl·cann·ops-nn
平安的平安2 小时前
面向大模型算子开发的高效编程范式PyPTO深度解析
c++·mfc
June`2 小时前
muduo项目排查错误+测试
linux·c++·github·muduo网络库
C++ 老炮儿的技术栈2 小时前
VS2015 + Qt 实现图形化Hello World(详细步骤)
c语言·开发语言·c++·windows·qt