关于 msw
面向 AI Agent 和开发者的 MSW v2 API 模拟最佳实践技能,适用于测试与开发环境。45 条分级规则涵盖 REST 和 GraphQL 处理器、测试集成、响应模式及调试。
主要功能
- 01涵盖八类的 45 条规则
- 02MSW v2 配置指引
- 03REST 与 GraphQL 处理器
- 04测试生命周期与集成
- 05响应及请求匹配模式
- 06调试与性能建议
适用场景
- 01在测试中配置 MSW
- 02整理可复用的请求处理器
- 03模拟 GraphQL 错误与响应
- 04调试请求拦截
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ pproenca/ dot-skills --skill msw安装后在 Claude Code 中输入/msw确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
AGENTS.mdmetadata.jsonREADME.mdassets/templates/_template.mdreferences/_sections.mdadvanced-bypass-requests.mdadvanced-cookies-auth.mdadvanced-dynamic-scenarios.mdadvanced-file-uploads.mdadvanced-vitest-browser.mddebug-common-issues.mddebug-lifecycle-events.mddebug-request-logging.mddebug-verify-interception.mdgraphql-batched-queries.mdgraphql-error-responses.mdgraphql-operation-handlers.mdgraphql-variables-access.mdhandler-absolute-urls.mdhandler-domain-grouping.mdhandler-happy-path-first.mdhandler-request-body-parsing.mdhandler-resolver-argument.mdhandler-reusability-environments.mdhandler-shared-resolvers.mdhandler-v2-response-syntax.mdmatch-custom-predicate.mdmatch-handler-order.mdmatch-http-methods.mdmatch-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- |
| 6 | GraphQL 模拟 | 中 | 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- 在处理器中使用绝对 URLhandler-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- 配置假计时器以保留 queueMicrotasktest-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 浏览器模式配置 MSWadvanced-file-uploads- 模拟文件上传端点
8. 调试与性能(低)
debug-lifecycle-events- 使用生命周期事件进行调试debug-verify-interception- 验证请求拦截是否正常工作debug-common-issues- 了解常见的 MSW 问题及其解决方法debug-request-logging- 记录请求详情以便调试
使用方法
阅读各个参考文件,了解详细说明和代码示例:
相关技能
- 如需根据 OpenAPI 生成 MSW 模拟,请参阅
orval技能 - 如需使用模拟 API,请参阅
tanstack-query技能 - 如需了解测试方法,请参阅
test-vitest或test-tdd技能
完整汇编文档
如需查看包含所有展开规则的完整指南:AGENTS.md
评论
支持 Markdown