SuperAPI AI 工具集

vitest-best-practices

测试与质量

查看项目

更新于 10-16 05:49

技能介绍

用途:在编写、审查或重构 Vitest 测试时加载,用于提升测试的可维护性、清晰度与运行速度。资料强调先检查现有配置:先在 vitest.config.ts 中查看 clearMocks、resetMocks、restoreMocks 等全局 mock 清理设置,再查找 test/setup.ts、vitest.setup.ts 等 setup 文件并分析其配置。

主要规则:不要省略全局 mock 清理配置,避免跨文件顺序依赖导致的非确定性失败;describe 嵌套不超过 2 层,把上下文写进测试名;不要 mock 自己的纯函数,只对 API、数据库、第三方库等外部依赖做替身,优先级为 fakes > stubs > spies > mocks;避免 toBeTruthy()、toBeDefined() 等宽松断言(toBeTypeOf() 不算宽松断言);不要测实现细节(如某函数被调用次数),而测输入到输出的行为;测试间不共享可变状态;测试文件不应用 any 跳过类型检查。

使用方式:按渐进式披露结构加载。先读 AGENTS.md 获取规则概要与工作流;按需加载参考文件——写异步测试用 async-testing.md,涉及 mocks、stubs、spies、fakes 用 test-doubles.md;看到 describe 嵌套超 2 层或测试未与实现同目录用 organization.md,缺少 AAA 结构用 aaa-pattern.md,重复测试用 parameterized-tests.md,缺少错误与边界用例用 error-handling.md,宽松断言用 assertions.md,单测超过 100ms 用 performance.md,需要覆盖率、watch 模式用 vitest-features.md,涉及快照用 snapshot-testing.md。资料提示测试快于 50ms 时不必加载 performance.md,未提及快照不必加载 snapshot-testing.md,基础测试不必加载 vitest-features.md。每个参考文件给出错误与正确示例及原因。quick-start.md 提供前后对比示例。适用场景:Vitest 单元测试的编写与审查。限制:资料未说明许可、收费、价格与安装命令。