SuperAPI AI 工具集

snapshot-test-cleanup

测试与质量

查看项目

更新于 10-15 22:19

技能介绍

用途:将快照测试重构为有针对性的断言,使测试能捕获真实回归,而不是对每次渲染都盖章通过。适用于改进测试可靠性、修复 flaky 测试、迁移快照测试。

主要能力:先对现有快照分类——整棵组件树快照、文本内容快照、样式快照、交互后快照、序列化数据快照,并给出各自替换策略;通过 git 历史识别高频更新的快照文件作为优先目标:git log --oneline -- **/snapshots/*.snap | grep -i "update|snapshot|fix"。

用法:逐类替换——整棵组件树改为针对关键结构的断言;文本快照改为 toHaveTextContent / getByText;条件渲染改为 toBeInTheDocument / not.toBeInTheDocument;交互快照改为 userEvent 触发后断言状态;错误与加载态改为状态专用断言;内联快照按同样策略转换或删除。序列化数据快照在格式稳定、无 DOM、纯转换时可保留,但须缩小范围。

质量核查:测试名描述行为而非实现;断言使用 getByRole、getByLabelText、getByText 等语义查询,不用 getByTestId 或 querySelector;每个 it 只测一个行为;删掉断言后应能让 bug 暴露;无害重构(改类名、调 DOM 顺序)后应仍通过。

输出格式:按文件给出每个测试的前后 diff,列出可删除的 .snap 文件,用 find . -name "*.snap" -empty -delete 清理空快照,说明被拆分的测试和保留快照的理由。限制:仅提供测试重构方法论与规则,未提供具体语言、框架版本或工具依赖信息。