这是我参与「第五届青训营」伴学笔记创作活动的的第3天
go语言工程测试和实践
1.概述
测试决定着系统的稳定型。避免事故发生。
项目开发中可能出现的事故:如营销配置错误、用户提现实效导致短时间可以多次提现、代码逻辑错误导致广告位被占、代码指针使用错误导致APP不可用等。
分为回归测试、集成测试、单元测试。
从左到右,覆盖率逐层变大,层本逐层降低。
2.单元测试
测试单元:函数、模块等
通过单元测试,和期望的结果进行校对,判断代码正确与否。
规则:1.所有测试文件以_test.go结尾
2.格式:func Testxxx(*testing.T)
3.初始化逻辑放到TestMain中
注意事项:1.一般覆盖率:50%~60%,较高覆盖率80%+。
2.测试分支相互独立、全面覆盖。
3.测试单元粒度足够小,函数单一职责。
单元测试的目标:稳定和幂等。
幂等:每次重复运行,结果的平均值相同。
稳定:单元测试能够相互隔离。任何时间、任何函数能够独立运行。
通过Mock函数实现。
3.基准测试
go语言提供基准测试,指测试一段程序运行性能和CPU的损耗。
用途:优化代码,需要对当前代码分析。
4.回归测试
回归测试:修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。
5.项目实践
一个参考步骤:
1.了解需求背景,对需求做分析。
2.画ER图。
3.分层结构,如:
数据层:数据Model,外部数据的增删改查。
逻辑层:业务Entity,处理核心业务逻辑输出。
视图层︰视图view,处理和外部的交互逻辑。
4.分步实现功能,其中可以用到并行等等操作。
5.搭建整个外部框架。
6.运行测试。