HTTP通信のモック
HTTPモックは外部のサーバの代わりにレスポンスを返すもの。APIクライアントの単体テストやUIテストで実際にサーバを利用するのが困難な場合に利用する。
Mockingjay
ライブラリとしてソースコードの中に組み込むのに使用できるライブラリ。
https://github.com/kylef/Mockingjay
Wiremock: スタンドアロン型のモックサーバ
上で記述した Mokingjay はライブラリとして組み込むため、Androidアプリと共通で使うことができない。両方で共通のものを利用する場合は Wiremock を利用して単独のJavaアプリとしてHTTPサーバを起動することもあり。
Cuckoo: モック用コード自動生成
Androidアプリ開発のデファクトスタンダードなモックライブラリ Mockito
と似たAPIを提供するのが Cuckoo 。
プロトコルの定義などからモックコードを自動生成してくれるツール・ライブラリ。
Cuckooを含むモックライブラリには次の3つのタイプがある。
- リフレクション機能(プログラム実行時に自信を読み書きする機能)を使用して実現するもの
- モック用ソースコードを生成するもの
- モックの作成をサポートするもの
※ Swiftでは Mirror構造体
を利用して読み取り専用のリフレクションが可能。
Cuckooでは 2 を提供、ビルド時にモック用のソースコードを自動生成している。