用途:该技能聚焦 Go 语言表驱动测试的适用边界与写法,帮助在“复制粘贴式测试”和“过度复杂的巨型表”之间找到平衡点。
主要能力:给出表驱动测试的适用条件(同一被测函数、同一断言模式、仅数据不同、3 个以上用例);说明何时应改用显式子测试(每例复杂 setup、少于 3 例、循环体内多分支);结构体设计规则(字段须在至少 2 个用例间变化、name 用场景短句、wantErr 布尔或哨兵错误、字段不超过 5 个);循环体保持约 10 行以内;并行表测试写法与 Go 1.22+ 循环变量作用域变化;以及臃肿表的症状与重构对照表。
使用方式:技能按需加载 references/patterns.md(规范表、wantErr/wantErrIs、并行表、map 表、仅错误表、结构体对齐)与 references/refactoring.md(臃肿表改写为显式子测试的前后示例),仅在摘要不足时读取。
适用场景:纯函数、解析器、校验器、格式化器等输入输出型逻辑的测试。
限制:并行测试仅适用于无副作用、无共享可变状态的函数;Go 1.22 以下仍需 tt := tt 捕获;资料未提供安装命令、收费、平台与效果等信息。