VS2022创建C C++ GTEST工程

原因

需要对带代码进行单元测试,选择在Visual studio 中使用GTEST 框架。

实施

创建一个常规的控制台可执行程序。然后使用NUGET安装包 安装GTEST 头文件和动态库,同时安装GTEST ADAPTER。

安装可能提示找不到包源,此时需要根据提示配置一下,注意通配符很关键,不要问为甚吗,就是有bug

编写GTEST 程序

// unit_test.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include "gtest\gtest.h"
#include "Grabber.h"

TEST(BISS_C,biss_single_point_read)
{
	DevHandle* hDevice =NULL;
	ASSERT_EQ(0,Dev_Open(0, hDevice));

	unsigned int position = 0;

	ASSERT_EQ(0, Dev_BISS_ReadSinglePoint(hDevice, &position));


	ASSERT_EQ(0, Dev_Close(hDevice));
}

编译完成就可以在测试管理器看到对应的测试,可以右键单独运行、调试指定的测试用例。

### 如何在 Visual Studio 2022 中使用 GTest 进行 C++ 单元测试 #### 创建项目 为了设置 Google Test (GTest),首先需要创建一个新的 C++ 控制台应用程序项目。这可以通过 Visual Studio 的向导完成。 #### 添加 GTest 库 有多种方法可以将 GTest 集成到项目中: - **通过 NuGet 安装**:由于官方不再维护单独的 `gtest` 包,在 NuGet 程序包管理器中搜索并安装 `gmock` 是一种常见做法[^3]。 - **利用 vcpkg 工具链集成**:另一种选择是借助于 Microsoft 提供的跨平台库管理工具——vcpkg 来获取最新的 GTest 版本,尽管这种方式可能会遇到一些兼容性挑战。 对于初学者来说,建议采用更简便的方法即通过 NuGet 获取必要的依赖项。 #### 编写测试代码 一旦配置好开发环境,则可以在解决方案资源管理器内新建源文件用于编写单元测试案例。下面是一个简单的例子展示如何定义和运行基本的测试用例: ```cpp // main.cpp 文件内容 #include <iostream> #include "gtest/gtest.h" int main(int argc, char **argv) { std::cout << "Running main() from gtest_main.cc\n"; ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); } ``` 上述代码片段展示了主函数应该如何初始化 GTest 并启动所有的测试套件执行过程[^1]。 接着是在另一个 cpp 文件 (`unit_test.cpp`) 中实现具体的测试逻辑: ```cpp // unit_test.cpp 文件内容 #include "gtest/gtest.h" #include "some_class_to_be_tested.h" // 假设这是要被测的目标类头文件路径 TEST(SomeClassTests, ConstructorWorks) { SomeClass obj; EXPECT_TRUE(true); // 替换成实际验证条件 } TEST(SomeClassTests, MethodDoesSomethingCorrectly) { SomeClass obj; bool result = obj.DoSomething(); EXPECT_EQ(result, true); } ``` 这里给出了两个不同功能点上的测试实例;每个都对应着特定的行为预期检查[^2]。 #### 构建与调试 编译整个工程项目之后即可看到由 GTest 自动发现并执行的所有测试情况汇总报告。如果有任何断言失败的情况发生,IDE 将自动跳转至相应的错误位置以便开发者快速定位问题所在。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值