Playwrightの「レスポンスのモック(Mock API)」とは、Webアプリケーションの外部APIやバックエンドサーバーからのレスポンスを擬似的に再現する仕組みです。これにより、実際のサーバーに依存せずに、開発やテストを安定して実行できます。以下に詳しく説明します。
1. モックの目的と利点
-
外部依存の排除:実際のAPIが未実装・不安定・課金制などの場合でも、独立してテスト可能。
-
一貫性のあるテスト:APIの応答が毎回異なる場合でも、常に同じ結果を返すように制御可能。
-
開発の高速化:フロントエンド側の実装・確認を、バックエンドが未完成の段階から開始できる。
2. 基本構文:page.route を用いたレスポンスのモック
page.route を用いたレスポンスのモックPlaywrightでは、page.route(url, handler) を使って、指定されたURLへのリクエストをインターセプトし、モック応答を返します。
解説
-
**/api/data:ワイルドカードを用いてURLを指定 -
route.fulfill({...}):本来のレスポンスの代わりに、モックデータを返す -
status:HTTPステータスコード(例:200、404など) -
contentType:返すデータの種類(通常はapplication/json) -
body:JSON文字列として返されるデータ
3. 条件に応じたレスポンスの変更
同じURLでも、リクエストの内容に応じてモックレスポンスを変えることができます。
4. 元のリクエストの継続と部分的なモック
完全なモックではなく、一部の条件のみを変更し、それ以外は本来のネットワークリクエストを続行することも可能です。
5. 応答時間のシミュレーション
モックレスポンスに意図的な遅延を加えることで、ネットワーク遅延のテストも可能です。
6. まとめ
| 機能 | 説明 |
|---|---|
route.fulfill() |
完全なモックレスポンスを返す |
route.continue() |
実際のリクエストをそのまま継続 |
| 条件分岐 | リクエスト内容に応じて異なるレスポンスを返す |
| 遅延のシミュレーション | ネットワーク遅延を模倣可能 |
Playwrightのレスポンスモック機能を活用することで、ネットワークに依存せず信頼性の高いE2Eテストや、効率的なフロントエンド開発が可能になります。必要に応じて、テストごとに異なるレスポンスや状況を柔軟に再現できます。
ChatGPT4o 生成日:2025/06/22