一、测试
事故
测试
1.1 单元测试
1.1.1 规则
- 所有测试文件以
_test.go结尾 func TestXxx(*testing.T)- 初始化逻辑放到
TestMain中
1.1.2 测试
1.1.3 运行
1.1.4 assert
1.1.5 覆盖率
- Tips
- 一般覆盖率:50%-60%,较高覆盖率80%+
- 测试分支相互独立、全面覆盖
- 测试单元粒度足够小,函数单一职责
1.2 依赖
1.3 文件处理
1.4 Mock
快速Mock函数
- 为一个函数打桩
- 为一个方法打桩
1.5 基准测试
- 优化代码,需要对当前代码分析
- 内置的测试框架提供了基准测试的能力
1.5.1 例子
1.5.2 运行
1.5.3 优化
二、项目实践
需求背景
2.1 需求描述
社区话题页面
- 展示话题(标题、文字描述)和回帖列表
- 暂不考虑前端页面实现,仅仅实现一个本地web服务
- 话题和回帖数据用文件存储
2.2 需求用例
2.3 E-R图(Entity Relationship Diagram)
2.4 分层结构
- 数据层:数据Model,外部数据的增删改查
- 逻辑层:业务Entity,处理核心业务逻辑输出
- 视图层:视图view,处理和外部的交互逻辑