跳到主要内容

测试

一、测试基础​

1.1 测试文件和函数​

  • 测试文件命名(_test.go)
  • 测试函数签名
  • 测试运行(go test)

1.2 测试包结构​

  • 包内测试
  • 包外测试
  • 测试包命名

1.3 go test 命令​

  • 基本用法
  • 常用参数
  • 测试输出

二、单元测试​

2.1 测试函数​

  • Test 函数
  • TestMain 函数
  • 测试辅助函数

2.2 测试断言​

  • if 判断
  • t.Error / t.Fatal
  • testing.T 方法

2.3 表驱动测试​

  • 测试用例定义
  • 循环测试
  • 子测试(t.Run)

2.4 测试覆盖率​

  • 覆盖率检查
  • 覆盖率报告
  • 覆盖率目标

三、测试组织​

3.1 测试固件​

  • setup 和 teardown
  • TestMain
  • 测试环境准备

3.2 测试隔离​

  • 并发测试
  • 测试数据隔离
  • 临时文件处理

3.3 Mock 和 Stub​

  • 接口 Mock
  • 测试替身
  • httptest 包

四、高级测试​

4.1 基准测试(Benchmark)​

  • Benchmark 函数
  • 基准测试运行
  • 性能分析
  • 内存分配统计

4.2 示例测试(Example)​

  • Example 函数
  • 输出注释
  • 文档示例

4.3 模糊测试(Fuzz Testing)​

  • Fuzz 函数
  • 随机输入生成
  • Go 1.18+ 特性

4.4 子测试​

  • t.Run 用法
  • 测试分组
  • 并行测试

五、测试工具​

5.1 httptest​

  • HTTP 测试服务器
  • 请求/响应记录

5.2 ioutil 测试​

5.3 第三方测试库​

  • testify
  • gomock
  • gomega

六、测试最佳实践​

6.1 测试原则​

  • 测试命名
  • 测试独立性
  • 测试可读性

6.2 TDD 开发流程​

6.3 测试覆盖率标准​

6.4 持续集成测试​