跳到主要内容

测试

一、测试基础

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 持续集成测试