用途
Test Quality Review 用于审计测试套件是否真正在测试东西,而不是单纯追求覆盖率数字。它关注测试的质量问题,例如没有断言的测试、断言过弱、被禁用或隐藏的测试、过度 mock,以及缺失的边界用例。该技能无需注册即可使用。
主要能力
该技能会查找测试文件(.test.、test.go、test.py、.spec.),逐个读取测试并标记以下质量异味:
- 没有真正的断言:测试体调用了代码但从不断言,或只写 expect(true).toBe(true);只做快照但断言无实质意义;测试不可能失败(例如把值与自身比较)。
- 弱断言:在确切值可知的情况下只写 assert result 或 expect(x).toBeTruthy();只断言状态码而不断言响应体,或只断言长度而不断言内容;在真正的契约是返回值时只断言“不抛出异常”。
- 被禁用或隐藏:.skip、.only、xit、xdescribe、test.todo、被注释掉的测试;整个文件被 describe.skip。
- 过度 mock:mock 了被测对象本身,导致测试只检查 mock;断言 mock 被调用,却从不验证结果是否正确。
- 缺失边界用例:只有正常路径,没有针对存在空值、null、错误、边界情况的逻辑补充相应用例;易抖动倾向,例如硬编码 sleep、未受控的真实网络/时间/随机。
对每个发现的问题,它会给出文件与行号、为什么该测试弱,以及更强的断言写法。
使用方式
前置条件:无。纯 Claude Code,直接读取测试文件,不需要 MCP。
触发方式(自然语言):
- “Review the quality of my tests”
- “Are these tests actually testing anything?”
- “Audit my test suite for weak tests”
工作流:先找到测试文件,再逐个读取并标记上述质量异味,最后输出审查结果。
输出示例结构:
Test Quality Review — 38 tests across 9 files
4 no-assertion · 6 weak · 2 skipped · 3 missing edge cases
No real assertion
tests/test_checkout.py:40— callsprocess_order()but never asserts. Add: assert the order status == "complete" and total is computed right.
Weak assertions
cart.spec.ts:18—expect(res.status).toBe(200)only. Also assert the cart body: item count, line totals, currency.
Disabled
auth.spec.ts:5—describe.only(...)— the rest of the file isn't running in CI!payments_test.go:60—t.Skip("flaky")— fix or delete; don't ship dark.
Missing edge cases
validate.pyhappy path only — add empty input, oversized input, and bad-type cases.
适用场景
适用于需要审查现有测试套件质量、判断测试是否真正验证行为的场景,例如在代码审查或持续集成前检查测试有效性。
限制
资料未提供关于收费、价格、平台支持范围、具体效果或性能的说明。该技能依赖 Claude Code 环境运行,不需要 MCP。