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相同)
关于测试先讲到这里。