这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天
一、本堂课重点内容:
- 本堂课的知识要点有:
-
1,测试类型
-
2,代码覆盖率
-
3,单元测试Mock,Patch
-
4,基准测试
-
5,项目实战
-
二、详细知识点介绍:
- 本堂课介绍了:
-
- 1,测试类型:回归测试,集成测试,单元测试 -
单元测试:输入 测试单元 输出 作用:校对保证质量 提升效率
- 规则:所有测试文件以_test.go结尾 func TestXxx(*testing.T) 初始化逻辑放到TestMain中
- "github.com/stretchr/testify/assert" assert.Equal(t,expectOutput,output)比较运行结果于预测结果是否相等
- 规则:所有测试文件以_test.go结尾 func TestXxx(*testing.T) 初始化逻辑放到TestMain中
-
2,评估单元测试——代码覆盖率:测试运行了程序代码的占比
-
3,单元测试——Mock
- 快速为一个函数打桩(打桩:用一个函数去替换原函数)
- 快速为一个方法打桩
-
Patch(目标函数,被替代的函数) Unpatch(目标函数) 卸载打桩- 4,基准测试——测试一段程序的运行性能及耗费CPU的程度 - 以Benchmark开头,入参testing.B 用b中的N值反复递增循环测试 - 5,项目实战
- 数据层:数据Model,外部数据的增删改查
- 逻辑层:业务Entity,处理核心业务逻辑的输出
- 视图层:视图Viwe,处理和外部的交互逻辑
- gin:高性能开源的go web框架
- 思路:
- 构建reposity根据er图定义结构体,实现话题查询评论查询
- 初始化话题数据索引:打开文件-初始化scanner-迭代遍历数据-转化为结构体-存到map
- 实现查询:根据查询key获取
- 初始化引擎配置
- 构建路由
- 启动服务
- 运行测试
-
三、实践练习例子:
- 项目实战例子中的扩展:关于根据话题Id索引帖子列表的数据。
四、课后个人总结:
实战很重要,对于项目还不是很理解,可以在复习复习。