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 可以获取代码覆盖率,检测测试代码本身的编写质量,从而可以发现测试代码的缺陷并改进。

相关推荐
lazy H2 分钟前
从入门到日常开发,一篇文章掌握 Git 核心操作
git·后端·学习·github
Scott9999HH7 小时前
【IIoT流量实战】蒸汽管道阀门全关却仍有流量?用 Python 实现涡街信号 FFT 频谱分析与温压全补偿积算网关,深度拆解靠谱的涡街流量计厂家硬核技术标准
开发语言·python
码智社9 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
AI云海9 小时前
python 列表、元组、集合和字典
开发语言·python
萧瑟余晖9 小时前
JDK 26 新特性详解
java·开发语言
马优晨10 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
a11177611 小时前
2FA 验证码生成器(github登录验证 app)
笔记·学习
我的xiaodoujiao12 小时前
API 接口自动化测试详细图文教程学习系列32--Allure测试报告2
python·学习·测试工具·pytest
人邮异步社区12 小时前
怎么把C语言学到精通?
c语言·开发语言
心平气和量大福大12 小时前
C#-WPF-控件-TextBox 数据绑定
开发语言·c#·wpf