Go Testing & Quality 是一个面向 Go 语言的测试与质量保障技能,提供符合 2026 年现状的惯用测试实践,以标准库 testing 包为基础,在能提升清晰度时使用 testify。
用途 用于编写单元测试(表驱动、子测试),使用 testify(assert / require / mock)添加断言或 mock,编写模糊测试、基准测试和示例测试,测量覆盖率(go test -cover)、排查竞态条件(-race),使用 pprof 进行分析或优化、配置 PGO,以及审查现有 Go 测试套件的质量缺口。
主要能力 技能附带决策图,按目标指向不同文档:编写标准 Go 测试(表驱动 + 子测试)对应 table-driven.md;testify 断言与 mock 对应 testify-mocks.md;模糊测试、基准测试与示例测试对应 fuzzing-benchmarks.md;覆盖率、竞态检测器、pprof 与 PGO 对应 coverage-profiling.md;可直接复制的完整测试文件位于 templates/table-test.md。
核心实践 表驱动测试是惯用写法:定义用例切片,循环并以 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 可将生产环境性能剖面反馈给编译器。
使用方式 工作流为:先了解被测代码和现有测试约定;默认以表驱动测试为基本形态(table-driven.md);在能提升可读性而非条件反射式地添加 testify 断言与 mock;运行 go test ./... -race -cover 并检查缺口;对热点和解析器进行模糊测试或基准测试(fuzzing-benchmarks.md);仅在基准测试证明确有热点后再做性能分析(coverage-profiling.md);改动后使用 sniper 验证。
适用场景与限制 适用于 Go 项目测试编写与测试套件质量审查。不用于项目布局、路由、数据库接入、依赖注入(应使用 go-architecture),不用于 SOLID 行数限制与接口约束(应使用 fuse-solid:solid-go),不用于非 Go 测试套件(Pest、Vitest、Jest、cargo test),不用于安全扫描与 CVE 审计(应使用 fuse-security)。该技能与 github.com/samber/cc-skills-golang 存在重叠,但测试与质量工具归本技能负责,架构与结构归 go-architecture。具体价格与安装命令暂未提供。