mcpField
M
msw

msw

github.com/pproenca测试与质量218871 次安装11 周前更新
代码仓库

关于 msw

面向 AI Agent 和开发者的 MSW v2 API 模拟最佳实践技能,适用于测试与开发环境。45 条分级规则涵盖 REST 和 GraphQL 处理器、测试集成、响应模式及调试。

主要功能

  1. 01涵盖八类的 45 条规则
  2. 02MSW v2 配置指引
  3. 03REST 与 GraphQL 处理器
  4. 04测试生命周期与集成
  5. 05响应及请求匹配模式
  6. 06调试与性能建议

适用场景

  1. 01在测试中配置 MSW
  2. 02整理可复用的请求处理器
  3. 03模拟 GraphQL 错误与响应
  4. 04调试请求拦截

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/pproenca/dot-skills --skill msw

安装后在 Claude Code 中输入/msw确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

AGENTS.md
metadata.json
README.md
assets/templates/
_template.md
references/
_sections.md
advanced-bypass-requests.md
advanced-cookies-auth.md
advanced-dynamic-scenarios.md
advanced-file-uploads.md
advanced-vitest-browser.md
debug-common-issues.md
debug-lifecycle-events.md
debug-request-logging.md
debug-verify-interception.md
graphql-batched-queries.md
graphql-error-responses.md
graphql-operation-handlers.md
graphql-variables-access.md
handler-absolute-urls.md
handler-domain-grouping.md
handler-happy-path-first.md
handler-request-body-parsing.md
handler-resolver-argument.md
handler-reusability-environments.md
handler-shared-resolvers.md
handler-v2-response-syntax.md
match-custom-predicate.md
match-handler-order.md
match-http-methods.md
match-query-params.md

详细介绍

MSW 最佳实践

面向 AI Agent 和大模型的 MSW v2 应用完整 API 模拟指南。包含 8 个类别中的 45 条规则,并按影响程度排序,以指导自动重构和代码生成。

适用场景

在以下情况下参考这些指南:

  • 为测试或开发配置 MSW
  • 编写或整理请求处理器
  • 使用 MSW 配置测试环境
  • 模拟 REST 或 GraphQL API
  • 调试处理器匹配问题
  • 测试错误状态和边缘情况

按优先级划分的规则类别

优先级类别影响前缀
1设置与初始化严重setup-
2处理器架构严重handler-
3测试集成高test-
4响应模式高response-
5请求匹配中高match-
6GraphQL 模拟中graphql-
7高级模式中advanced-
8调试与性能低debug-

快速参考

1. 设置与初始化(严重)
  • setup-server-node-entrypoint - 为 Node.js 使用正确的入口点(msw/node)
  • setup-lifecycle-hooks - 在测试设置中配置服务生命周期
  • setup-worker-script-commit - 将 worker 脚本提交到版本控制
  • setup-node-version - MSW v2 要求 Node.js 18+
  • setup-unhandled-requests - 配置未处理请求的行为
  • setup-typescript-config - 为 MSW v2 配置 TypeScript
2. 处理器架构(严重)
  • handler-happy-path-first - 将成功路径处理器定义为基准
  • handler-domain-grouping - 按领域对处理器分组
  • handler-absolute-urls - 在处理器中使用绝对 URL
  • handler-shared-resolvers - 将共用的响应逻辑提取到解析器中
  • handler-v2-response-syntax - 使用 MSW v2 响应语法
  • handler-request-body-parsing - 显式解析请求正文
  • handler-resolver-argument - 正确解构解析器参数
  • handler-reusability-environments - 在不同环境间共用处理器
3. 测试集成(高)
  • test-reset-handlers - 每次测试后重置处理器
  • test-avoid-request-assertions - 避免直接断言请求
  • test-concurrent-boundary - 并发测试时使用 server.boundary()
  • test-fake-timers-config - 配置假计时器以保留 queueMicrotask
  • test-async-utilities - 使用异步测试工具处理模拟响应
  • test-clear-request-cache - 在测试之间清除请求库缓存
  • test-jsdom-environment - 为 Jest 使用正确的 JSDOM 环境
4. 响应模式(高)
  • response-http-response-helpers - 使用 HttpResponse 静态方法
  • response-delay-realistic - 添加逼真的响应延迟
  • response-error-simulation - 正确模拟错误响应
  • response-one-time-handlers - 在连续场景中使用一次性处理器
  • response-custom-headers - 正确设置响应头
  • response-streaming - 使用 ReadableStream 模拟流式响应
5. 请求匹配(中高)
  • match-url-patterns - 正确使用 URL 路径参数
  • match-query-params - 从请求 URL 中获取查询参数
  • match-custom-predicate - 使用自定义谓词进行复杂匹配
  • match-http-methods - 显式匹配 HTTP 方法
  • match-handler-order - 按从具体到通用的顺序排列处理器
6. GraphQL 模拟(中)
  • graphql-operation-handlers - 使用操作名称进行 GraphQL 匹配
  • graphql-error-responses - 按正确格式返回 GraphQL 错误
  • graphql-batched-queries - 处理批量 GraphQL 查询
  • graphql-variables-access - 正确获取 GraphQL 变量
7. 高级模式(中)
  • advanced-bypass-requests - 使用 bypass() 转发请求
  • advanced-cookies-auth - 处理 Cookie 和身份验证
  • advanced-dynamic-scenarios - 实现动态模拟场景
  • advanced-vitest-browser - 为 Vitest 浏览器模式配置 MSW
  • advanced-file-uploads - 模拟文件上传端点
8. 调试与性能(低)
  • debug-lifecycle-events - 使用生命周期事件进行调试
  • debug-verify-interception - 验证请求拦截是否正常工作
  • debug-common-issues - 了解常见的 MSW 问题及其解决方法
  • debug-request-logging - 记录请求详情以便调试

使用方法

阅读各个参考文件,了解详细说明和代码示例:

  • 章节定义 - 分类结构和影响级别
  • 规则模板 - 添加新规则的模板
  • 各项规则:references/{prefix}-{slug}.md

相关技能

  • 如需根据 OpenAPI 生成 MSW 模拟,请参阅 orval 技能
  • 如需使用模拟 API,请参阅 tanstack-query 技能
  • 如需了解测试方法,请参阅 test-vitest 或 test-tdd 技能

完整汇编文档

如需查看包含所有展开规则的完整指南:AGENTS.md

评论

支持 Markdown