SuperAPI AI 工具集

frontend-testing

前端与建站

查看项目

更新于 10-16 01:38

技能介绍

用途:该技能用于为 Dify 项目前端代码生成高质量测试,遵循既有约定与最佳实践。触发场景包括:要求为组件、hook 或工具函数编写测试;审查现有测试完整性;提及 Vitest、React Testing Library、RTL 或 spec 文件;要求提升测试覆盖率;使用 pnpm analyze-component 输出作为上下文;讨论前端单元或集成测试;了解 Dify 代码库测试模式。不适用:后端/API 测试(Python/pytest)、E2E 测试(Playwright/Cypress)、无代码上下文的概念性问题。

技术栈:Vitest 4.0.16、React Testing Library 16.0、jsdom、nock 14.0、TypeScript 5.x。命令:pnpm test、pnpm test:watch、pnpm test path/to/file.spec.tsx、pnpm test:coverage、pnpm analyze-component <path>、pnpm analyze-component <path> --review。

用法与约定:测试文件命名为 ComponentName.spec.tsx 并与组件同目录,集成测试放 web/tests/。采用 AAA 模式与黑盒测试,使用语义化查询(getByRole 等),优先模式匹配而非硬编码文本,每个测试验证单一用户可观察行为,命名形如 should <behavior> when <condition>。导入真实项目组件,仅 mock 外部依赖(如 @/service/api、next/navigation),不要 mock 基础组件或同目录兄弟组件。模块不会自动 mock,全局 mock 位于 web/vitest.setup.ts。

必备场景:渲染、Props、边界情况(null、undefined、空值)。按存在情况测试 useState、useEffect、事件处理、API 调用、路由、useCallback/useMemo、Context、表单。目标为每个文件 100% 函数与语句覆盖、>95% 分支与行覆盖。

限制:多文件目录必须增量处理,逐文件编写、运行、修复并验证后再继续;按工具函数、hooks、简单组件、中等组件、复杂组件、集成测试的顺序处理。复杂度超过 50 或超过 500 行时建议先重构。详细指南见 references 目录下 workflow、mocking、async-testing、domain-components、common-patterns、checklist。权威规范为 web/testing/testing.md。