SuperAPI AI 工具集

api-testing

测试与质量

查看项目

更新于 10-16 02:35

技能介绍

用途:该技能用于验证 HTTP 接口,通过发送请求并断言响应,覆盖状态码、响应头、响应体内容与错误处理。适合 REST API 集成测试、中间件管线测试、请求/响应契约校验、第三方 API 模拟以及错误与边界场景测试。不适合纯函数单元测试、浏览器端 E2E(建议 Playwright/Cypress)、负载性能测试(建议 k6/Artillery)和静态文件服务测试。

主要能力:supertest 提供链式 API,可在不启动真实服务器的情况下对 Express、Fastify、Hono 应用做集成测试;MSW v2 在网络层拦截出站 HTTP 请求,可在 Node.js 测试与浏览器环境中真实模拟外部服务。支持 GET/POST 请求、认证头、状态码与响应体断言、响应头断言、MSW 的 HTTP 与 GraphQL 处理器、HttpResponse.json/error、一次性处理器、按测试覆盖处理器、Zod 结构校验、Cookie 保持,以及 Fastify inject 与 Hono testClient。

使用方式:用 request(app).get('/path') 发起请求并始终 await;POST 用 .send(body) 自动设置 Content-Type;认证头用 .set('Authorization', 'Bearer token');断言用 .expect(200) 与 .expect({ key: 'value' })。MSW 在 beforeAll 调用 server.listen(),afterEach 调用 server.resetHandlers(),afterAll 调用 server.close(),并建议设置 onUnhandledRequest: 'error'。Fastify 需传 fastify.server 给 supertest。

限制与注意:避免直接 mock fetch/axios,应使用 MSW 在网络层拦截;不要在测试间共享服务器状态;不要用 afterEach 关闭服务器;应测试 4xx/5xx 路径并校验 Content-Type、Cache-Control、CORS 等响应头;断言响应结构而非内部实现。若可用 vitest-testing 技能,可将通用 Vitest 配置与模式委托给它,否则可运行 npx skills add oakoss/agent-skills --skill vitest-testing。