没有理想的人不伤心

Golang - 单元测试

2025/02/11
2
0

测试

测试分为三种类型:

  • 回归测试
  • 集成测试
  • 单元测试

单元测试 覆盖率最大,且成本最低

回归测试反之

单元测试

1730615628514-0cc113f7-330a-4204-9cb3-11acfe473d67.png

规则:

  • 测试文件以 _test.go 结尾
  • 测试函数命名以 Test 开头,func TestXxx(*testing.T)
  • 初始化逻辑放在 TestMain入口函数中

1730615807556-3d8b6a63-c0b4-4aae-83af-85c8c1a2a5b0.png

使用 go test命令进行测试,参数 --cover 会输出覆盖率,使用覆盖率来评估一个测试的程度

1730616948375-3b34223b-4ce0-4691-a63c-984f5b8c6aa3.png

mock 测试:

mock(打桩)方法进行测试,特别针对于一些外部强依赖,比如数据库等,使用普通函数替换掉这些外部的依赖进行测试,以避免其他因素(如:网络等)对程序的影响

基准测试

go 中提供了基准测试的框架,用于测试程序性能,使用 -bench 参数

规则:

  • 函数名以 Benchmark 开头

1730617591065-fb31575b-95ef-4e10-b376-245993d2fe6c.png