在visual Studio中引入Google Test进行单元测试

因为工作,需要对函数进行单元测试。

根据需求选定了Google Test框架进行,单元测试。

开始时根据网上的教程 需要git Google Test的库。

后面发现visual Studio本身就有Google Test。

创建过程如下

首先点击工具,获取工具和功能

跳出的界面里点击使用C++的桌面开发,选择Google Test测试适配器

确定visual Studio安装了Google Test测试适配器,如果没有,安装。

点击新建,项目

搜索框里键入GOO第一个就是Google Test

点击下一步跳出

名为“Test Project Configuration”,用于配置Google Test和C++运行时库的使用方式。具体选项包括:

  • 使用Google Test的方式

    • 静态库 (.lib)

    • 动态库 (.dll)

  • C++运行时库

    • 动态链接(推荐)

    • 静态链接

    • 静态库 (.lib):如果希望简化部署并且减少运行时的依赖,可以选择静态库。这样所有的代码会被编译进最终的可执行文件。
      • 动态库 (.dll):如果希望节省内存使用,并且允许更新单个库文件而不需要重新编译整个项目,可以选择动态库。

    • C++运行时库

      • 动态链接(推荐):通常推荐使用动态链接,这样可以共享C++运行时库,节省内存和减少可执行文件大小。静态链接:如果希望避免运行时依赖,确保所有必要的库都在一个可执行文件中,可以选择静态链接

这里我默认选择了静态库,和动态链接

系统会创建如下项目

这里点击开始调试,或者开始执行

如果弹出如下图,说明引入成功

接下来,尝试测试一下如下代码

int addint(int a, int b) {
	return a + b;
}
float addfloat(float a, float b) {
	return a + b;
}

在pch.cpp中实现函数

在pch.h中声明函数

在test.cpp中写测试的宏

#include "pch.h"

TEST(TestCaseName, TestName) {
  EXPECT_EQ(1, 1);
  EXPECT_TRUE(true);
}

// addint 测试用例
TEST(AddINT, HandlesPositiveInput) {
	EXPECT_EQ(addint(1, 1), 2);
	EXPECT_EQ(addint(2, 3), 5);
}
// addfloat 测试用例
TEST(AddFloatTest, HandlesPositiveInput) {
	EXPECT_FLOAT_EQ(addfloat(1.5, 1.5), 3.0);
	EXPECT_FLOAT_EQ(addfloat(2.0, 3.5), 5.5);
}
// 主函数运行所有的测试
int main(int argc, char** argv) {
	::testing::InitGoogleTest(&argc, argv); // 初始化Google Test框架
	int result =  RUN_ALL_TESTS();
}

TEST(TestCaseName, TestName):

  • 作用:定义一个测试用例。

  • 参数TestCaseName是测试套件的名称,TestName是具体测试的名称。

EXPECT_EQ(val1, val2):

  • 作用:断言val1val2相等。如果不相等,测试将失败。

EXPECT_FLOAT_EQ(val1, val2):

  • 作用:断言两个浮点数val1val2相等,允许小范围误差。如果不相等,测试将失败。

EXPECT_TRUE(condition):

  • 作用:断言condition为真。如果condition为假,测试将失败。

::testing::InitGoogleTest(&argc, argv):

  • 作用:初始化Google Test框架,解析命令行参数,配置Google Test。

RUN_ALL_TESTS():

  • 作用:运行所有定义的测试用例,返回测试结果。

运行后结果如下

基本上就是这些,Google Test还有别的内置的宏和函数。

不过到时候用的时候,再查询使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值