SuperAPI AI 工具集

go-testing-quality

测试与质量

查看项目

更新于 10-16 05:48

技能介绍

用途:为 Go 代码编写与审查测试、补充覆盖率、做基准测试与性能剖析时使用。基于标准 testing 包,并在能提升可读性时使用 testify。不适用于 CI/lint 接线(见 go-tooling-security)或非 Go 测试。

主要能力:编写表驱动单元测试与子测试;用 testify 的 assert/require/mock 添加断言与 mock;编写模糊测试、基准测试与示例测试;用 go test -cover 测量覆盖率、用 -race 追查竞态;用 pprof 做性能剖析与优化,并配置 PGO;审查现有 Go 测试套件的质量缺口。

核心实践:表驱动测试是惯用写法,定义用例切片并循环,用 t.Run(tc.name, …) 作为子测试以获得隔离与可读输出;testify 是事实上的断言/mock 标准,assert 用于软检查,require 在失败时中止,mock 用于手写 mock,suite 用于 setup/teardown 分组,维护在 v1(无破坏性 v2);模糊测试自 Go 1.18 起原生支持(func FuzzXxx(f *testing.F));CI 中始终运行 -race;先测量再优化,基准测试(go test -bench)配合 pprof 指导改动,PGO 将生产 profile 反馈给编译器。

工作流:先探索被测代码与既有测试约定;默认写表驱动测试;在提升可读性处添加 testify 断言/mock,而非条件反射式使用;运行 go test ./... -race -cover 并检查缺口;对热点与解析器做模糊/基准测试;仅在基准证明热点后再做剖析;改动后用 sniper 验证。

边界:与社区 Go 技能有重叠,本技能负责测试与质量工具,架构/结构见 go-architecture;SOLID 行数/接口约束见 fuse-solid:solid-go;非 Go 测试套件(Pest、Vitest、Jest、cargo test)用对应专家;安全扫描/CVE 审计用 fuse-security。