Go语言工程测试 | 青训营笔记
这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天
单元测试
-
编写测试单元,测试单元当中包含如下的部分
- 调用被测试的函数
- 预期结果
- 预期结果以及函数返回的结果
- 错误处理
-
单元测试的覆盖度
- 一般覆盖率:50% ~ 60%,较高覆盖率80%+
- 测试分支相互独立、全面覆盖
- 测试单元粒度足够小,函数单一职责
- 相关指令:
-
单元测试-依赖
-
单元
- File
- DB
- Cache
-
幂等:重复运行一个测试结果与之前是一样的
-
稳定:单元测试能够相互隔离,任何时间任何函数实现相互的运行
-
Mock
monkey: github.com/bouk/monkey
为什么需要时使用Mock?
对于一些场景,一些模块没有完成,或者用户数据不完整的情况,我们需要构建一些虚拟的接口,方便我们前端进行测试。
这里有参考:
2022全网最新b站最细的接口测试中常见的Mock测试场景实战_哔哩哔哩_bilibili
快速Mock函数
- 为一个函数打桩
- 为一个方法打桩
其实可以认为,如果我们是读入文件的话,那么就是将一个虚拟的数值直接填入到程序当中当成文件,这样也就构造了虚拟的对象。
主要目的是让我们可以拜托对数据,或者是对后端接口的依赖,这样就是mock测试
go语言当中的基准测试
- 优化代码,需要对当前代码分析
- 内置的测试框架提供了基准测试的能力
利用基准测试发现并行的效率会降低,因为rand函数包含一个全局锁,会使并发度降低,这样运行时间就会变长,所以我们可以利用fastrand进行优化。