目前最近的工作要接触一些有关于测试方面的知识,但是本人之前并没有做测试的经验,所以开始在网上做收集研究。接下来言归正传。
单元测试
go 语言本身就自带了一个建议的测试库叫做 testing
,使用方法蛮简单的 。
比如测试
1 | package main |
1 | package main |
我这里的命名是 GoLand 自动生成的,而go标准的测试 func 名一般为TestXXX
,而文件名为 文件名_test.go 。
这里t.Log()
输出信息 , 并继续。
1 | === RUN Test_add |
t.Fatal()
标记为测试不通过,终止并输出错误信息
1 | === RUN Test_add |
如果我们使用 t.Error()
, 虽然测试不通过,但仍继续测试下去,适用在测试多 case 的时候。
而Logf 、 Errorf 、Fatalf
我就不多赘述,也就是format的意思。
当测试多案例的时候,我们可以使用goland或vscode 生成的测试方法
1 | import "testing" |
第一个参数为测试名称 ,第二为 我们需要传入的参数,当参数较多的时候,使用结构体 , 第三个参数即我们最终需要的结果。查了下这种叫做 Table-Driven Test ,还蛮形象的 。
并行测试和基准测试以及覆盖率测试什么的我个人不大会,暂时略过,择日再写。