😎

Mockoonで複雑なレスポンスを返す方法:条件分岐・エラー再現・遅延レスポンスまで

に公開

以前の投稿「Kotlin + MockoonでAPI通信をモック!Android開発の効率化方法」では、Mockoonの基本的な使い方を紹介しました。

今回はもう一歩進んで、開発やテストで役立つ「リアルなAPI挙動の再現」 をテーマに、Mockoonでできる以下のような応用テクニックを紹介します。

  • 条件に応じたレスポンス切り替え(Rules)
  • 成功/失敗のレスポンス分岐
  • 遅延応答のシミュレーション
  • ダミーデータ生成(fakerテンプレート)

条件付きレスポンスの作成(Rules)

Mockoonでは、クエリパラメータやリクエストヘッダーなどの条件に応じて、レスポンスを切り替えることができます。

例:?error=true が指定されたときだけエラーを返す

  1. エンドポイントを作成
  2. レスポンスを複数用意
  3. 特定のレスポンスに以下のRuleを追加:
{
  "source": "query-param",
  "modifier": "error",
  "value": "true",
  "operator": "equals"
}

この設定により、/login?error=true にアクセスすると、このルールにマッチしたレスポンス(例えば 400 Bad Request)が返されます。


ステータスコード・レスポンスの切り替え

ログインなどのAPIでは、正常系と異常系のレスポンスをあらかじめMockoon上で複数用意しておくと便利です。

  • 通常時は 200 OK
  • 認証エラー時は 401 Unauthorized
  • サーバーエラー時は 500 Internal Server Error

条件付きレスポンスと組み合わせれば、テストケースの切り替えも簡単に行えます。


応答を遅延させる(Latency)

UIテストで「ローディング表示がきちんと出るか」を確認したい場合、Mockoonでレスポンスを遅らせると便利です。

  • レスポンスの Latency を例えば 2000ms に設定するだけで、2秒後に返答されます。

この設定は個別のレスポンスごとに調整可能なので、APIごとのリアルな挙動が再現できます。


ダミーデータ生成(テンプレート + faker)

Mockoonでは、faker 関数を使ってレスポンスの内容を毎回変化させることができます。

例:ランダムなUUIDや日付を返す

{
  "id": "{{faker 'datatype.uuid'}}",
  "createdAt": "{{faker 'date.recent'}}",
  "user": {
    "name": "{{faker 'name.findName'}}",
    "email": "{{faker 'internet.email'}}"
  }
}

こういったテンプレートは、一覧画面や詳細画面のテストに最適です。


応用パターン集

✅ 認証あり/なしの分岐

  • Authorization ヘッダーがあるときだけ 200 を返す
  • ないときは 401 を返す
{
  "source": "header",
  "modifier": "authorization",
  "operator": "is set"
}

✅ POST内容で条件分岐

  • リクエストボディに特定の値が含まれていた場合のみ、成功レスポンスを返す
{
  "source": "body",
  "modifier": "username",
  "value": "admin",
  "operator": "equals"
}

まとめ

Mockoonを使えば、以下のような複雑なレスポンスをGUIで簡単に作成できます。

  • 条件付きでレスポンス切り替え(Rules)
  • 遅延レスポンスでローディング再現
  • fakerで毎回異なるダミーデータ生成

これらを活用することで、開発中でも本番に近いテスト環境を再現できるようになります。

次回は、CLIの活用やモック定義のバージョン管理についても紹介予定です!


🔗 関連記事

株式会社ソニックムーブ

Discussion