SuperAPI AI 工具集

testing-qa

测试与质量

查看项目

更新于 10-15 15:18

技能介绍

用途

该技能用于帮助开发者为 Next.js 应用编写全面的测试,覆盖端到端测试、组件测试和单元测试三个层次。当需要编写测试、调试测试失败或搭建测试环境时,可参考本技能提供的配置、模式与清单。

测试理念

技能提出测试金字塔:E2E 测试约占 10%,聚焦关键用户旅程;集成测试约占 30%,关注组件交互;单元测试约占 60%,针对单个函数与工具。

测试范围建议:应当测试行为而非实现细节、测试用户交互与结果、测试错误状态与边界情况、测试可访问性;不应测试内部实现细节、不应测试第三方库、不应过度测试简单的展示型组件。

主要能力

Playwright 端到端测试

提供 playwright.config.ts 配置示例,包含 testDir、fullyParallel、CI 下的 forbidOnly 与 retries、workers、reporter、baseURL、trace、screenshot,以及 chromium 与 Mobile Chrome 两个项目,并通过 webServer 启动 npm run dev。

基础 E2E 用例示例覆盖注册流程(填写邮箱、密码、确认密码,提交后验证跳转与欢迎信息)和无效凭据错误提示。

高级模式包括:页面对象模型(LoginPage 类封装 goto、login、getErrorMessage)、认证状态 fixture(通过 base.extend 提供 authenticatedPage)、等待网络响应、文件上传、下载、API 响应模拟、调试截图、响应式视口设置、可访问性扫描(AxeBuilder)。

组件测试(React Testing Library)

提供 jest.config.js 与 jest.setup.js 配置示例,包含 ts-jest 预设、jsdom 环境、setupFilesAfterEnv、模块路径映射。

组件测试示例覆盖:按钮渲染文本、点击回调、禁用状态、变体样式;异步组件加载中、加载成功、加载失败三种状态;表单必填校验、有效数据提交、提交中禁用按钮;Hook 的默认值、自定义初始值、递增、递减、重置。

单元测试

工具函数测试示例覆盖 formatDate、slugify、truncate 的正常与边界情况。API 路由测试示例覆盖 GET 返回列表、POST 创建条目、POST 缺少必填字段返回 400。

Mock 方案

提供 Mock Supabase(链式查询与 auth.getUser)、Mock Next.js Router(useRouter、usePathname、useSearchParams)、Mock 外部 API(MSW 的 setupServer 与 rest 处理器)的示例。

测试清单

E2E 清单:关键用户旅程、多浏览器、移动视口、错误状态、慢网络、禁用 JavaScript(适用时)、可访问性。

组件清单:渲染、用户交互、props、条件渲染、错误状态、加载状态、可访问性。

单元清单:纯函数、边界情况、错误处理、多种输入、边界条件。

常用模式与调试

包括 data-testid 选择、可访问性查询(getByRole、getByLabelText、getByText、getByPlaceholderText)、加载状态测试、错误边界测试。调试方面提供 screen.debug()、Playwright 的 --debug 与 --headed 运行方式,以及元素未找到、时序问题、状态更新未反映等常见问题的排查建议。

性能测试

提供 Lighthouse CI 的 lighthouserc.js 配置片段(资料中该部分内容不完整)。

使用方式

资料中给出的使用方式为:在 Next.js 项目中按示例配置 Playwright 与 Jest,编写对应层次的测试文件,运行 npx playwright test 等命令执行测试。具体安装命令与依赖版本资料中暂未提供。

适用场景

适用于 Next.js 应用的测试编写、测试失败调试、测试环境搭建,以及需要统一 E2E、组件、单元测试实践的团队。

限制

资料未提供该技能的安装方式、依赖版本、收费或价格信息、平台支持范围,也未提供完整的 Lighthouse CI 配置内容。