SuperAPI AI 工具集

api-testing

测试与质量

查看项目

更新于 10-16 06:50

技能介绍

用途:为 REST 和 GraphQL API 编写测试时提供有立场的策略指导,覆盖从单处理器单元测试到跨服务契约测试的完整范围,重点说明每层该测什么以及为什么,而非仅给语法。适用触发场景包括:为 API 端点写测试、搭建 HTTP 服务集成/端到端测试、实现消费者与提供者契约测试、为下游依赖创建 mock 服务器或 stub、校验响应 schema 或载荷结构、测试认证流程(JWT、OAuth、API key)、测试错误处理与边界失败场景,以及涉及 Supertest、Pact、MSW、Zod、Apollo 测试等工具时。不适用于 UI/组件测试和负载性能测试。

核心原则:测行为而非实现,断言对调用方的返回而非内部函数连接;在正确边界隔离,单元测试 mock 处理器以下全部、集成测试用真实数据库、契约测试只验证接口承诺;schema 优先断言,用 Zod 或 JSON Schema 校验响应结构;契约是承诺而非快照,须每次部署运行;在网络边界 mock(MSW、nock),不在函数内部 mock。

测试类型与默认策略:单元测处理器逻辑、中间件、验证器,快;集成测含真实 DB 的完整请求周期,中;契约测消费者与提供者之间的接口承诺,中;端到端测跨服务完整用户旅程,慢。默认策略:业务逻辑用集成测试,纯转换逻辑用单元测试,服务边界用契约测试,E2E 仅覆盖关键正常路径。

主要能力:用 Supertest 直接绑定 Express/Fastify 应用测试 REST 端点,如 request(app).get('/users/1').set('Authorization','Bearer test-token').expect(200),并覆盖 404、401;用 @apollo/server 的 executeOperation 在进程内执行 GraphQL 操作,检验完整 resolver 链;用 Pact(PactV3、Verifier)先由消费者定义期望,再由提供者验证满足,含状态处理器;用 MSW 的 http/HttpResponse 与 setupServer 在网络层拦截请求,support onUnhandledRequest、resetHandlers;用 Zod 定义一次 schema 并复用于生产与测试,配合 safeParse 精确定位字段错误;显式测试每种认证状态(无 token、格式错误、过期、缺 scope、有效),并测试 RFC 7807 错误格式、409 重复、500 不泄露堆栈、400 非法 JSON。

反模式提示:只测正常路径、mock 被测模块、测试间共享状态、把契约测试当快照、测内部实现细节、忽略响应头。另可参考 references/msw-patterns.md(仅任务需要时加载)。

限制:资料未提供具体价格、平台限制与安装命令之外的性能数据。