9.1 测试
一、传统测试 vs 表格驱动测试
传统测试:
测试数据和测试逻辑混在一起
出错信息不明确
一旦一个数据出错,测试全部结束
表格驱动测试
分离的测试数据和测试逻辑
明确的出错信息
可以部分失败
go语言的语法使得我们更容易实践表格测试
二、表格驱动测试示例
被测试代码:勾股定理
func calcTriangle(a, b int) int { var c int c = int(math.Sqrt(float64(a*a + b*b))) return c }测试文件编写
func TestAdd(t *testing.T) { tests := []struct{ a, b, c int }{ {3, 4, 5}, {5, 12, 13}, {8, 15, 17}, {12, 35, 37}, {4, 6, 9}, {300, 400, 500}, {11, 12, 13}, } for _, tt := range tests { if actual := calcTriangle(tt.a, tt.b); actual != tt.c { t.Errorf("测试结果异常,参数:%d, %d, %d", tt.a, tt.b, tt.c) } } }要求:文件命名必须以xxxx_test命名
运行方式
命令行:指定目录下
go test .IDEA:直接运行即可(main函数)
Last updated
Was this helpful?