msw について
AI エージェントや開発者向けの MSW v2 API モックのベストプラクティススキルです。テストや開発環境で使う REST・GraphQL ハンドラー、テスト連携、レスポンス、デバッグの 45 ルールを優先度別に整理しています。
主な機能
- 018 分野にわたる 45 のルール
- 02MSW v2 の設定指針
- 03REST と GraphQL のハンドラー
- 04テストライフサイクルと連携
- 05レスポンスとリクエスト照合のパターン
- 06デバッグと性能のヒント
活用シーン
- 01テストでの MSW 設定
- 02再利用可能なリクエストハンドラーの整理
- 03GraphQL のエラーとレスポンスのモック
- 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 のベストプラクティス
MSW v2 アプリケーション向けの包括的な API モックガイドです。AI エージェントと LLM を対象に設計されています。8 つのカテゴリにわたる 45 のルールが含まれており、影響度に基づいて優先順位を付け、リファクタリングやコード生成の自動化を支援します。
適用する場面
以下の場合に、これらのガイドラインを参照してください。
- テストや開発のために MSW をセットアップするとき
- リクエストハンドラーを記述または整理するとき
- MSW を使用するテスト環境を設定するとき
- REST API または GraphQL API をモックするとき
- ハンドラーのマッチングに関する問題をデバッグするとき
- エラー状態やエッジケースをテストするとき
優先度別のルールカテゴリ
| 優先度 | カテゴリ | 影響度 | プレフィックス |
|---|---|---|---|
| 1 | セットアップと初期化 | CRITICAL | setup- |
| 2 | ハンドラーのアーキテクチャ | CRITICAL | handler- |
| 3 | テストとの統合 | HIGH | test- |
| 4 | レスポンスパターン | HIGH | response- |
| 5 | リクエストのマッチング | MEDIUM-HIGH | match- |
| 6 | GraphQL のモック | MEDIUM | graphql- |
| 7 | 高度なパターン | MEDIUM | advanced- |
| 8 | デバッグとパフォーマンス | LOW | debug- |
クイックリファレンス
1. セットアップと初期化(CRITICAL)
setup-server-node-entrypoint- Node.js 用の正しいエントリーポイント(msw/node)を使用するsetup-lifecycle-hooks- テストセットアップでサーバーのライフサイクルを設定するsetup-worker-script-commit- ワーカースクリプトをバージョン管理にコミットするsetup-node-version- MSW v2 には Node.js 18 以降を必須とするsetup-unhandled-requests- 未処理のリクエストに対する動作を設定するsetup-typescript-config- MSW v2 用に TypeScript を設定する
2. ハンドラーのアーキテクチャ(CRITICAL)
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. テストとの統合(HIGH)
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. レスポンスパターン(HIGH)
response-http-response-helpers- HttpResponse の静的メソッドを使用するresponse-delay-realistic- 現実的なレスポンス遅延を追加するresponse-error-simulation- エラーレスポンスを正しくシミュレートするresponse-one-time-handlers- 順次実行のシナリオには一度限りのハンドラーを使用するresponse-custom-headers- レスポンスヘッダーを正しく設定するresponse-streaming- ReadableStream でストリーミングレスポンスをモックする
5. リクエストのマッチング(MEDIUM-HIGH)
match-url-patterns- URL パスパラメーターを正しく使用するmatch-query-params- リクエスト URL からクエリパラメーターにアクセスするmatch-custom-predicate- 複雑なマッチングにはカスタム述語を使用するmatch-http-methods- HTTP メソッドを明示的にマッチさせるmatch-handler-order- 具体的なものから一般的なものへとハンドラーを並べる
6. GraphQL のモック(MEDIUM)
graphql-operation-handlers- GraphQL のマッチングにはオペレーション名を使用するgraphql-error-responses- 正しい形式で GraphQL エラーを返すgraphql-batched-queries- バッチ処理された GraphQL クエリを処理するgraphql-variables-access- GraphQL の変数に正しくアクセスする
7. 高度なパターン(MEDIUM)
advanced-bypass-requests- passthrough リクエストに bypass() を使用するadvanced-cookies-auth- Cookie と認証を処理するadvanced-dynamic-scenarios- 動的なモックシナリオを実装するadvanced-vitest-browser- Vitest のブラウザーモード向けに MSW を設定するadvanced-file-uploads- ファイルアップロード用エンドポイントをモックする
8. デバッグとパフォーマンス(LOW)
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 対応