branch10480’s blog

Topics that I've learned.

iOSアプリ開発自動テストの教科書 を読んでいく 〜 16 〜

HTTP通信のモック

HTTPモックは外部のサーバの代わりにレスポンスを返すもの。APIクライアントの単体テストやUIテストで実際にサーバを利用するのが困難な場合に利用する。

Mockingjay

ライブラリとしてソースコードの中に組み込むのに使用できるライブラリ。

https://github.com/kylef/Mockingjay

Wiremock: スタンドアロン型のモックサーバ

上で記述した Mokingjay はライブラリとして組み込むため、Androidアプリと共通で使うことができない。両方で共通のものを利用する場合は Wiremock を利用して単独のJavaアプリとしてHTTPサーバを起動することもあり。

Cuckoo: モック用コード自動生成

Androidアプリ開発のデファクトスタンダードなモックライブラリ Mockito と似たAPIを提供するのが Cuckoo

プロトコルの定義などからモックコードを自動生成してくれるツール・ライブラリ。

Cuckooを含むモックライブラリには次の3つのタイプがある。

  1. リフレクション機能(プログラム実行時に自信を読み書きする機能)を使用して実現するもの
  2. モック用ソースコードを生成するもの
  3. モックの作成をサポートするもの

※ Swiftでは Mirror構造体を利用して読み取り専用のリフレクションが可能。

Cuckooでは 2 を提供、ビルド時にモック用のソースコードを自動生成している。

> 次回に続く