Go语言内置测试框架,只需命名测试文件为*_test.go并放在同一目录下,用Test开头定义测试函数,通过go test命令运行测试,支持表格驱动和详细输出。

Go语言自带了单元测试框架,不需要额外安装第三方工具就能编写和运行测试。只要按照约定的命名规则和目录结构组织代码,就可以直接使用 go test 命令执行测试。
1. 测试文件命名规范
Go要求测试文件以 _test.go 结尾,并且放在对应包的同一目录下。例如:
源码文件:calculator.go 测试文件:calculator_test.go
这样 go test 才能自动识别并加载测试用例。
2. 编写测试函数
每个测试函数必须以 Test 开头,参数类型为 *testing.T。示例:
立即学习“go语言免费学习笔记(深入)”;
Shakker
多功能AI图像生成和编辑平台
103 查看详情
func TestAdd(t *testing.T) { result := Add(2, 3) if result != 5 { t.Errorf("期望 5,但得到了 %d", result) }}
你可以使用 t.Log 记录调试信息,t.Errorf 触发失败但继续执行,t.Fatalf 遇错立即终止。
3. 运行测试命令
在项目根目录或包目录下执行:
go test —— 运行当前目录所有测试 go test -v —— 显示详细输出(推荐) go test ./… —— 递归运行所有子目录测试 go test -run TestName —— 只运行匹配名称的测试函数
4. 使用表格驱动测试(Table-Driven Tests)
对于多个用例,推荐使用切片定义测试数据,结构清晰易维护:
func TestDivide(t *testing.T) { tests := []struct { a, b int expected int err string }{ {10, 2, 5, ""}, {5, 0, 0, "除数不能为零"}, } for _, tt := range tests { t.Run(fmt.Sprintf("%d/%d", tt.a, tt.b), func(t *testing.T) { result, err := Divide(tt.a, tt.b) if tt.err != "" { if err == nil || err.Error() != tt.err { t.Errorf("期望错误 %q,实际得到 %v", tt.err, err) } } else { if result != tt.expected { t.Errorf("期望 %d,但得到了 %d", tt.expected, result) } } }) }}
基本上就这些。Go 的测试机制简洁高效,配合 IDE 支持还能实现一键运行和覆盖率查看。不复杂但容易忽略细节,比如测试函数名拼写错误会导致被忽略。确保遵循规范,就能顺利开展单元测试。
以上就是Golang环境搭建如何配置单元测试框架的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1133889.html
微信扫一扫
支付宝扫一扫