Go 语言学习之测试

概念:

在 Go 语言中,Go 的测试方法依赖于命令 go test,go test 子命令是 Go 语言包的测试驱动程序,测试文件的文件名以 _test.go 结尾。每个测试文件必须导入 testing 包。

测试函数分为三种,分别是功能测试函数,函数名以 Test 开头,用来检测一些程序逻辑的正确性,go test 命令运行测试函数,输出结果是 PASS 或 FAIL;性能测试函数,函数名以 Benchmark 开头,用来测试某些操作的性能,go test 运行测试函数,得到操作的平均执行时间;示例函数,函数名以 Example 开头,用来提供机器检查过的文档。

go test 工具扫描 *_test.go 文件寻找测试函数,并生成一个临时的 main 包来调用它们,然后编译和运行,并汇报测试结果,最后清空临时文件。

单元测试 :

在 Go 语言中,标准库 testing 包的类型 T 提供一些方法来控制测试代码的行为。

testing 包类型 T 常用方法:

|----------|---------|
| 方法 | 描述 |
| Fail | 失败,继续执行 |
| FailNow | 失败,终止执行 |
| SkipNow | 跳过,停止执行 |
| Log | 输出错误信息 |
| Parallel | 并行执行 |

go test 命令的参数 -v,可以输出包中每个测试用例的名称和执行时间;参数 -run 是一个正则表达式,可以限制 go test 只运行测试函数名称匹配给定模式的测试函数。

性能测试:

testing 包类型 B 的 N 方法,可以逐步调整循环次数,直到可以获取准确的性能测试结果。

go test 默认不会执行性能测试函数,需要使用参数 -bench,还可以使用 -cpu 参数设定并发限制,使用 -benchtime 参数设置最小测试时间来增加循环次数。

覆盖率:

go test 使用参数 -cover 可以获取代码覆盖率,检测测试代码本身的编写质量,从而可以发现测试代码的缺陷并改进。

相关推荐
自信150413057591 小时前
重生之从0开始学习c++之类与对象(中)
c++·学习
AI_零食1 小时前
开源鸿蒙跨平台Flutter开发:快递单号批量查询应用
学习·flutter·华为·开源·harmonyos·鸿蒙
ths5121 小时前
测试开发python中正则表达式使用总结(二)
开发语言·python·算法
色空大师1 小时前
【java打包方式详解】
java·开发语言·部署·打包·启动脚本·jar包分离
人道领域1 小时前
2026年Java后端热点全景解析:从LTS革新到云原生跃迁
java·开发语言
heimeiyingwang1 小时前
【架构实战】API接口防刷与限流策略
开发语言·python·架构
四谎真好看1 小时前
Redis学习笔记(高级篇2)
redis·笔记·学习·学习笔记
188号安全攻城狮1 小时前
【前端基础知识】JavaScript 数组方法总结:从表格速查到分类详解
开发语言·前端·javascript·网络安全
鱼鳞_1 小时前
Java学习笔记_Day26(不可变集合)
java·笔记·学习
不爱吃炸鸡柳1 小时前
5道经典贪心算法题详解:从入门到进阶
开发语言·数据结构·c++·算法·贪心算法