用途:这是 Epic Stack 的测试指南技能,用于在 Epic Stack 项目中编写单元测试与端到端测试,遵循 Epic Web 的测试理念。
主要能力:单元测试使用 Vitest,可测试工具函数与组件(配合 @testing-library/react);端到端测试使用 Playwright,覆盖表单与校验、路由与 loader、action、认证与权限等场景。提供 login、insertNewUser、navigate、waitFor、prepareGitHubUser 等 fixture 与辅助函数,navigate 支持类型安全的路由参数。测试数据库自动配置并在测试间清理,测试中创建的数据会自动删除。外部服务通过 MSW 模拟,配置 MOCKS=true 时自动生效。
使用方式:单元测试文件放在 app/utils/*.test.ts,从 vitest 导入 describe、expect、it;E2E 测试放在 tests/e2e/,从 #tests/playwright-utils.ts 导入 expect、test。可用 login() 创建已登录用户,insertNewUser() 创建未登录用户,prisma 直接造数据,createUser、createPassword 生成测试数据。
适用场景:为 Epic Stack 应用编写用户流程测试、表单校验测试、权限测试、loader/action 测试及外部服务模拟测试。
限制与注意:测试应模拟真实用户行为而非实现细节,断言要具体,测试之间必须相互独立,避免硬编码数据(可用 faker),不要依赖测试执行顺序。资料未提供具体安装命令、版本要求与配置细节。