如何在 Visual Studio 中用GoogleTest编写 C/C++ 单元测试

前言

C++项目中准备添加单元测试。因为我们用的IDE是Visual Studio。调查得知,Visual Studio本身就集成了几个 C++ 测试框架,无需进行额外下载。

  • 适用于 C++ 的 Microsoft 单元测试框架
  • Google Test
  • Boost.Test
  • CTest

首先测试了Microsoft 单元测试框架,用VS2017编译不过,据说是vs的Bug,在最新的版本已经修复。由于没有最新VS,后续就用GoogleTest去研究了。(其他俩个框架没有尝试,不再赘述)

错误 C1083 无法打开包括文件: “CppUnitTest.h”: No such file or
directory NativUnitTest d:\project\unittest\nativeunittest\nativeunittest.cpp 2

创建GoogleTest单元测试项目

用GoogleTest框架新建单元测试工程

操作:文件→新建→项目→Visual C++→测试→GooleTest
本例项目命名为GoogleTestProject
在这里插入图片描述

工程创建成功后,在测试资源管理器中点击全部运行(默认有生成测试实例),验证测试是否可行

在这里插入图片描述
测试资源管理器没有显示的话,在“测试”菜单上,选择“窗口” > “测试资源管理器”
在aaaaaaaaa这里插入图片描述

创建待测dll项目

使用“Windows 桌面向导”创建 一个C++ 工程用于测试
操作:右键解决方案→添加→新建项目→Visual C++→Windows 桌面→Windows 桌面向导
本例项目命名为DynamicLinkLibrary。
在这里插入图片描述
上面画面点击“创建”。 在下一个对话框中,在“应用程序类型”下选择“动态链接库 (dll)”,同时选中“导出符号”。
“导出符号” 选项生成可用来声明导出方法的便利宏。
在这里插入图片描述
创建成功后,.h文件中声明要导出的函数,.cpp中定义要导出的函数
在这里插入图片描述
在这里插入图片描述

在单元测试工程中参照引用待测dll

在单元测试工程中参照引用待测dll,这样单元测试工程才能调用待测工程中的函数去做单元测试
操作:右键单击单元测试工程→添加→引用→选择待测工程
在这里插入图片描述
引用添加成功后,如下所示,在【引用】处可以看得到
在这里插入图片描述
最后,添加上述引用工程的.h

#include "pch.h"
#include "../DynamicLinkLibrary/DynamicLinkLibrary.h"

编写单元测试代码并运行

编写测试用例

TEST(TestCaseName1, TestName1) {
	CDynamicLinkLibrary DyLinkLibrary;
    EXPECT_EQ(1, DyLinkLibrary.Sum(0, 1));
}
TEST(TestCaseName1, TestName2) {
	CDynamicLinkLibrary DyLinkLibrary;
	EXPECT_EQ(1, DyLinkLibrary.Sum(0, 1));
}

TEST(TestCaseName2, TestName1) {
	CDynamicLinkLibrary DyLinkLibrary;
	EXPECT_EQ(1, DyLinkLibrary.Sum(0, 1));
}

生成解决方案,新测试用例出现在【测试资源管理器】中。在【测试资源管理器】中,选择【全部运行】。
在这里插入图片描述

问题Debug

当某个测试项不通过时,可以调试出问题的测试用例。
操作:右键单击要调试的测试用例→调试所选测试
在这里插入图片描述

  • 6
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值