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

相关推荐
ん贤几秒前
如何加快golang编译速度
后端·golang·go
LGGGGGQ28 分钟前
嵌入式学习-PyTorch(7)-day23
人工智能·pytorch·学习
AI 嗯啦37 分钟前
python基础语法9,用os库实现系统操作并用sys库实现文件操作(简单易上手的python语法教学)
开发语言·python
stm 学习ing38 分钟前
Python暑期学习笔记3
笔记·python·学习
屁股割了还要学1 小时前
【C语言进阶】内存函数
c语言·开发语言·学习·算法·青少年编程
耳总是一颗苹果1 小时前
C语言---自定义类型(上)(结构体类型)
c语言·开发语言
玩代码1 小时前
模板方法设计模式
java·开发语言·设计模式·模板方法设计模式
靴子学长1 小时前
Lotus-基于大模型的查询引擎 -开源学习整理
python·学习·自然语言处理
riverz12271 小时前
Go 程序无法使用 /etc/resolv.conf 的 DNS 配置排查记录
golang
每一天都要努力^2 小时前
C++拷贝构造
开发语言·c++