18

Android アプリ (クライアント) と残りのサービス (サーバー) の 2 つのアプリケーションを使用してプロジェクトに取り組んでいます。私の Android アプリは残りのサービスを消費します。

両方のアプリケーションは、期待どおりにビジネスを行っていることを確認するために個別にテストされます。サーバー テストでは、リクエストを準備し、サーバーの応答を確認します。クライアントのテスト中に、単純な http モック サーバーをセットアップし、さまざまなモック応答に対してクライアントの要求をテストしました。

さて、このテクニックはかなりうまく機能します。それは私が好きな柔軟性を与えてくれます。さまざまなテスト フレームワークと継続的インテグレーション環境を使用できます。しかし、弱点が1つあります。(クライアントとサーバー) の両方のテスト ケースで、同じ API を指定します。たとえば、

GET /foo-list.json

json で HTTP 200 を返します

[{
    id: 1,
    name: foo1,
}, {
    id: 2,
    name: foo2
}]

だから私は自分自身を繰り返します。応答形式を変更しても、クライアント テストは失敗しません。

私の質問は、この種のシナリオをテストする際の優れた方法についてです。独立したテストの柔軟性を犠牲にすることなく、真の統合テストを作成する方法。模擬サーバーまたは残りのサービスの実際のインスタンスでクライアントをテストする必要がありますか?

あなたの専門的な経験を共有してください。

4

4 に答える 4

5

モックは単体テスト用です。モックを使用したテストの説明は、まさにそれを説明しています。クライアントとサーバーを別々のユニットとしてテストします。

統合テストでは、ユニットがうまく連携するかどうかをテストします。インターフェイスは REST インターフェイスであるため、モックを作成しても意味がありません。HTTP 経由で実際のものをテストする必要があります。

統合テストと単体テストの違いは何ですか?も参照してください。

于 2013-10-24T19:41:42.193 に答える