用途:这是一套 Go 语言的测试模式指南,用于在 Go 项目中编写可靠、易维护的测试,并配合测试驱动开发(TDD)工作流。适用于编写新函数、补充测试覆盖率、为性能关键代码写基准测试、为输入校验做模糊测试等场景。
主要能力:
- TDD 流程:红-绿-重构循环,先写失败测试,再写最少实现使测试通过,最后在保持通过的前提下重构。
- 表格驱动测试:以结构体切片列出用例,配合 t.Run 子测试覆盖正常值、边界值与错误路径。
- 子测试与并行测试:用子测试组织相关用例,通过 t.Parallel() 并行运行独立测试,注意捕获循环变量。
- 测试辅助:t.Helper() 标记助手函数,t.Cleanup() 清理资源,t.TempDir() 提供自动清理的临时目录,testdata/ 存放 golden 文件并支持 -update 更新。
- Mock:基于接口定义依赖,用 Mock 实现替换真实实现进行测试。
- 基准测试:用 b.N 循环测量性能,b.ResetTimer() 排除准备时间,可按规模分组并比较不同实现的内存分配。
- 模糊测试(Go 1.18+):添加种子语料,用 f.Fuzz 验证属性。
- 覆盖率与 HTTP 测试:生成覆盖率配置文件、在浏览器查看,使用 httptest 测试 handler 的状态码与响应体。
必要用法:常用命令保持原样,例如 go test ./...、go test -v ./...、go test -run TestAdd ./...、go test -race ./...、go test -coverprofile=coverage.out ./...、go tool cover -html=coverage.out、go test -bench=. -benchmem ./...、go test -fuzz=FuzzParseJSON -fuzztime=30s ./...、go test -count=10 ./...。
适用场景与限制:适合 Go 项目的单元测试、接口测试与性能验证,并可在 CI 中运行测试与覆盖率检查。资料未提供安装步骤、收费方式与具体平台信息,实际使用需结合 Go 工具链环境。