Test
1. 简介
Go 语言中自带有一个轻量级的测试框架 testing 和自带的 go test 命令来实现单元测试和性能测试。
2. 要求
- 文件名必须是`_test.go`结尾的,这样在执行`go test`的时候才会执行到相应的代码
- 你必须 import `testing`这个包
- 所有的测试用例函数必须是`Test`开头
- 测试用例会按照源代码中写的顺序依次执行
- 测试函数`TestXxx()`的参数是`testing.T`,我们可以使用该类型来记录错误或者是测试状态
- 测试格式:`func TestXxx (t *testing.T)`,`Xxx`部分可以为任意的字母数字的组合,但是首字母不能是小写字母[a-z],例如`Testintdiv`是错误的函数名。
- 函数中通过调用`testing.T`的`Error`, `Errorf`, `FailNow`, `Fatal`, `FatalIf`方法,说明测试不通过,调用`Log`方法用来记录测试的信息。
4. 压力测试
- 压力测试用例必须遵循如下格式,其中 XXX 可以是任意字母数字的组合,但是首字母不能是小写字母
- func BenchmarkXXX(b *testing.B) { ... }
- go test 不会默认执行压力测试的函数,如果要执行压力测试需要带上参数-test.bench,语法:-test.bench="test_name_regex",例如 go test -test.bench=".*"表示测试全部的压力测试函数
- 在压力测试用例中,请记得在循环体内使用 testing.B.N,以使测试可以正常的运行文件名也必须以_test.go 结尾