单元测试
概念说明
单元测试用于验证一个小范围函数或模块是否符合预期。
Go 内置 testing 包和 go test 命令,不需要额外安装测试框架。
测试文件通常和被测试文件放在同一个包中。
文件名必须以 _test.go 结尾,测试函数必须以 Test 开头。
语法/规则
- 测试文件命名为
xxx_test.go。 - 测试函数签名是
func TestName(t *testing.T)。 - 使用
t.Fatalf或t.Errorf报告失败。 - 运行
go test执行当前包测试。 - 运行
go test -v可以显示更详细的测试输出。
被测试函数示例
| |
测试函数示例
| |
运行命令:
| |
输出结果:
| |
常见错误
- 测试文件没有以
_test.go结尾,导致go test不识别。 - 测试函数不是
TestXxx格式,导致不会被执行。 - 函数签名没有写
t *testing.T,导致测试函数无效。 - 只写成功路径测试,忽略边界值和错误路径。