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

相关推荐
一隅论数智3 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
小羊没烦恼!3 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
XiHongShi20163 天前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
爱吃苹果的日记本3 天前
离散数学第六课
学习·离散数学
伞伞悦读3 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
ttwuai3 天前
Go开源后台管理系统推荐:怎么按技术栈和边界比较4个官方仓库?
golang·gin
C语言小火车3 天前
C/C++ 为什么需要编译器?
开发语言·c++
AI职业加油站3 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
codeejun3 天前
每日一Go·MySQL-5、锁机制全解析
云原生·golang