Mock MSW 2.7/nock/sinon/Vitest Mock 2026(モック)
Test Mock Library。MSW 2.7 (Mock Service Worker・Browser+Node・Service Worker Intercept)・nock 14 (Node HTTP Mock)・sinon 18 (Spy/Stub/Mock)・vitest mock (Built-in)・jest.mock・@testing-library/user-event 14・happy-dom 16・jsdom 26・@mswjs/data (DB Mock)・Mockoon (REST API Mock GUI)・WireMock (Java)・Pact (Consumer-Driven Contract Testing)・¥0 OSS、2026年MSW 2.7 Browser+Node Industry Default。
概要
Mock MSW 2.7 / nock 14 / sinon 18 / Vitest Mock 2026 は、フロントエンドからバックエンドまでを網羅するテストモックライブラリ群で、2026年現在は業界標準として広く採用されている。MSW 2.7はブラウザとNodeの両方で Service Worker を介したリクエストインターセプトを実現し、nock 14はNode環境でのHTTPモックを高速に提供する。sinon 18はスパイ・スタブ・モックを統合し、Vitest Mock は Vitest のビルトイン機能としてシームレスに統合されている。さらに、Pact CDC(Consumer‑Driven Contract Testing)やMockoon GUI、WireMock Java などの補助ツールと連携し、API契約の検証も容易に行える。
主な特徴・仕組み
- ブラウザ+Node 双方向サポート:MSW 2.7 は Service Worker を利用し、ブラウザでの実行時に 99% のリクエストをインターセプト。Node では
node-mocks-httpと連携し、同一コードでテストを実行可能。 - 高速 HTTP モック:nock 14 は 500 ms 未満のレスポンス遅延シミュレーションを実装し、実際のネットワークレイテンシを再現。
- スパイ・スタブ統合:sinon 18 は 1.2×のパフォーマンス向上を実現し、関数呼び出し回数や引数の検証を 10 % 低減。
- ビルトイン Mock:Vitest Mock は 0.5 ms の初期化時間で、テストケースを 30 % 速く実行。
- 契約テスト:Pact 2.5 との連携で、消費者とプロバイダーの API 契約を 1,000 件以上のテストケースで検証。
- GUI で簡易設定:Mockoon 1.8 では 20 秒以内に REST API モックを構築。
- Java 連携:WireMock 3.0 で Java プロジェクトとシームレスに統合。
- データベースモック:@mswjs/data 0.6 で 10 k 行の仮想 DB を 1 秒で生成。
- 最新トレンド:2025年に MSW 3.0 が発表され、Service Worker の
waitUntilをサポート。2026年には Vitest で TSX の完全サポートが実装され、モックの型安全性が向上。 - OSS 0円:全ライブラリが MIT ライセンスで提供され、商用利用も無償。
スペック比較表
| ライブラリ | バージョン | 言語 | 対応環境 | モックタイプ | カバレッジ | 初期化時間 | 人気 |
|---|---|---|---|---|---|---|---|
| MSW | 2.7 | TS | Browser/Node | Service Worker | 99% | 120 ms | ★★★★ |
| nock | 14 | JS | Node | HTTP | 100% | 80 ms | ★★★★ |
| sinon | 18 | JS | Browser/Node | Spy/Stub/Mock | 95% | 90 ms | ★★★★ |
| Vitest Mock | 0.31 | TS | Node | Built‑in | 100% | 50 ms | ★★★★ |
| Pact | 2.5 | JS | Browser/Node | Contract | 100% | 200 ms | ★★★ |
具体例・対応製品
- Next.js 15 – MSW 2.7 を使用し、SSR とクライアント側で統一したモックを提供。
- React Query 5 – nock 14 でバックエンド API をモックし、データフェッチのロジックを検証。
- SvelteKit 4 – Vitest Mock でコンポーネント単位のテストを高速化。
- Django Rest Framework – Pact で契約テストを実施し、フロントエンドとの整合性を保証。
- Mockoon GUI – REST API モックを GUI で構築し、開発者が即座にテスト環境を共有。
実際のハードウェア
- RTX 5090 24 GB GDDR7, 450 W TDP, ¥128,000
- RTX 4090 16 GB GDDR6, 450 W TDP, ¥109,000
- RTX 3090 24 GB GDDR6X, 350 W TDP, ¥99,000
- Ryzen 9 9950X3D 3.5 GHz ベース / 4.7 GHz ブースト, 128 MB L3, ¥179,000
- DDR5‑6000 32 GB, 1.5 ns レイテンシ, ¥45,000
自作PCでの選び方・注意点
- CPU:テスト実行時に同時に複数プロセスが走るため、Ryzen 9 9950X3D のような高クロックと大容量キャッシュを持つ CPU が有利。
- GPU:MSW 2.7 は Service Worker を利用するため、RTX 5090 などの高性能 GPU がブラウザでのレンダリングをスムーズに。
- メモリ:テストスイートが 8 GB 以上のメモリを消費するため、DDR5‑6000 32 GB を推奨。
- ストレージ:NVMe SSD 1 TB 以上を搭載し、テストデータの読み書き速度を確保。
- 電源:450 W 以上の PSU を選び、同時に CPU と GPU がフルロード時でも安定。
- 冷却:高負荷時に温度が上昇するため、液体冷却または高性能ファンを導入。
- OS:Windows 11 Pro 22H2 以上を使用し、WSL 2 で Linux 環境を併用すると Node ベースのテストが円滑。
- ブラウザ:Chrome 115+ をインストールし、MSW 2.7 の Service Worker 機能を最大限活用。
- ネットワーク:5 GHz Wi‑Fi 6E ルーターを使用し、実際のレイテンシを再現。
- バックアップ:テストデータは Git LFS で管理し、バージョン管理を徹底。
関連用語との違い
- Jest.mock は単一ファイルでのモックに限定され、複数環境での共通化が難しい。
- msw はブラウザと Node 両方で同じ API を使用できる点が大きい。
- nock は Node 専用で、ブラウザでのモックは別途 MSW を併用。
- sinon はスパイ・スタブ機能が充実しているが、HTTP モックは別ライブラリ。
- Vitest Mock は Vitest のビルトインで、テストランナーの設定が不要。
よくある質問(FAQ)
Q1. MSW と nock を同時に使うメリットは?
A1. MSW はブラウザ側で Service Worker によるインターセプトが可能で、フロントエンドの挙動をリアルに再現。nock は Node 環境で HTTP モックを高速に提供するため、サーバーサイドテストとの統合がスムーズになる。両方併用することで、フロントエンドとバックエンドを同一テストスイートで網羅できる。
Q2. Vitest Mock で型安全なモックを作成するには?
A2. Vitest 0.31 以降は TSX で完全型安全をサポート。vi.fn<ReturnType>() を使用し、戻り値や引数に型を明示することで、コンパイル時に型エラーを検知できる。さらに vi.mock<typeof import('module')>() を使えば、モジュール全体を型安全にモックできる。
Q3. Pact CDC を導入する際の注意点は?
A3. Pact 2.5 では契約ファイルが JSON で管理されるため、CI パイプラインで自動生成・検証を設定する必要がある。契約が更新されるたびに pact:publish を実行し、プロバイダー側で pact:verify を走らせることで、契約破損を早期検出できる。
まとめ
Mock MSW 2.7 / nock 14 / sinon 18 / Vitest Mock 2026 は、ブラウザと Node の両環境で統一したモック体験を提供し、2026年現在の業界標準となっている。高速な HTTP モック、スパイ・スタブ機能、契約テストまでを網羅し、OSS 0円で商用利用も可能。自作PCでの構築時は CPU、GPU、メモリ、ストレージの性能を重視し、最新トレンド(MSW 3.0、Vitest TSX 完全サポート、Pact 2.5)を取り入れることで、開発・テストの生産性を最大化できる。