关于golang测试

本文探讨了Go语言的表格驱动测试与传统测试的区别,强调了表格驱动测试在分离测试数据和逻辑、提供清晰错误信息及允许部分失败等方面的优点。尽管其他语言如C++、Python、Java也能实现,但Go语言的语法使其更加便捷。文中详细介绍了如何在Go中进行测试,包括创建_test.go文件和使用testing包,并提到了通过PowerShell等工具运行测试的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

go语言测试属于表格驱动测试 区别于传统调试

传统测试缺点如下

  .测试数据与测试逻辑混在一起

  .出错信息不明确

  .一旦一个数据出错测试全部出错

表格驱动测试优点如下

  .分离的测试数据和测试逻辑

  .明确的出错信息

  .可以部分失败而不中断测试

  .go语言的语法使得很容易使用表格驱动测试

要明确的一点是 不仅仅是go语言可以使用表格驱动方法测试 其他语言如

c++,pythen,java等语言都可以使用表格驱动测试 但其他语言相对golang语法 实现难度较大

本文只详细介绍golang的实现

golang的测试包名称为testing 使用方法如下

在被测试文件相同文件夹下创建名称为 (自己的文件名称)_test.go文件 

package main

import "testing" //包名

func TestTriangle(t *testing.T){  //注意指针传输 *testing.T主要用于测试方法返回值是否正确
	tests := []struct {a,b,c int}{ //创建测试结构体...
		{3,4,5},
		{5,12,13},
		{8,15,17},
		{12,35,37},
		{30000,40000,50000},
	}
	for _, tt := range tests{ //循环取出结构体值
		if actual := calcTriangle(tt.a,tt.b); actual != tt.c{ //判断表达式 如果 c int 与 a+b int 值不相等则返回错误
			t.Errorf("calcTriangle(%d %d); got %d; expected %d",tt.a,tt.b,actual,tt.c)
			//此处打印错误信息 tt.a代表a值 tt.b代表b值 tt.c代表c值(自己判断的值) actual为实际返回值
		}
	}
}

 

go语言支持命令行运行测试

这里我用的是powerShell(其他linux mac cmd相同)

关于测试先讲到这里。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值