Go 语言工程实践之测试 丨青训营笔记

61 阅读1分钟

测试: 回归测试,集成测试,单元测试。从左到右,覆盖率逐层变大,成本却逐层降低

1.      单元测试

(1)      包括输入输出,测试单元,期望。其中测试单元可以是函数,模块等,对比输出与期望判断代码是否正确,可以保证服务质量,提高运行效率

(2)      规则

·测试文件后以_test.go结尾

·函数命名:func TestXxx(*testing.T)

·可以初始化逻辑放到TestMain:

Func TestMain(m *testing. M)

{

          //测试前:数据装载、;配置初始化等

          code := m,Run()// 测试代码

          //测试后:释放资源等收尾工作

          os.Exit(code)

}

(3)      覆盖率

测试代码时,应当完整地测试完所以代码,保证测试完备性

一般覆盖率:50%-06%,较高覆盖率为(资金类)80%

测试分支相互独立,全面覆盖

 测试单元

(4)      依赖

外部依赖=》幂等(每次运行代码时case一样)稳定(单元测试可以相互隔离)

(5)      Mock

利用打桩测试,就不在依赖本地文件 

(6)      基准测试

项目实战:社区话题页面

需求:展示话题和回帖列表,实现一个本地web服务,话题和回帖数据用文件存储

1.      浏览消费用户

用户属性: 可用ER图-Entity Relationship Diagram

User{Topic, PostLIst},  Topic{属性},Postlist{属性}, Topic对Postlist是1对多地光系

2.      分层结构:

数据层:数据Model,外部数据地增删改查

逻辑层:业务Entity,处理核心业务逻辑输出

视图层:视图view,处理与外部的交互逻辑

3.      组件工具:可以通过GitHub进行下载安装使用

Gin高性能go web 框架

Go Mod