😎
Mockoonで複雑なレスポンスを返す方法:条件分岐・エラー再現・遅延レスポンスまで
以前の投稿「Kotlin + MockoonでAPI通信をモック!Android開発の効率化方法」では、Mockoonの基本的な使い方を紹介しました。
今回はもう一歩進んで、開発やテストで役立つ「リアルなAPI挙動の再現」 をテーマに、Mockoonでできる以下のような応用テクニックを紹介します。
- 条件に応じたレスポンス切り替え(Rules)
- 成功/失敗のレスポンス分岐
- 遅延応答のシミュレーション
- ダミーデータ生成(fakerテンプレート)
条件付きレスポンスの作成(Rules)
Mockoonでは、クエリパラメータやリクエストヘッダーなどの条件に応じて、レスポンスを切り替えることができます。
?error=true
が指定されたときだけエラーを返す
例:- エンドポイントを作成
- レスポンスを複数用意
- 特定のレスポンスに以下の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