0

Web アプリケーションとモバイル クライアントが正しく通信していることを確認する必要があります。

サーバー (rspec テストを使用する Rails アプリケーション) からモバイル クライアント (Ruby アプリケーション、mspec テスト フレームワークを使用) への通信と、モバイル クライアントからサーバーへの通信が双方向で行われます。

したがって、同期メカニズムが期待どおりに機能していることを確認するには、次のことをテストする必要があります。

  • サーバーはデータを正しく準備します。
  • モバイル クライアントが正しいデータを要求して取得します。
  • モバイル クライアントは、サーバーに正しく送信されるデータを準備します。
  • サーバーは、モバイル クライアントから正しいデータを受信して​​解析します。
  • サーバーは、モバイル クライアントにすべて問題ないという応答を送信します。
  • モバイル クライアントは、デバイス上で適切なアクションを実行する必要があります。

これを単独でテストする方法は?

4

1 に答える 1

0

すべてのテストに関して、予期しないことを計画しないでください。知っていることから始めましょう。予想外のことは、すぐに醜い頭をもたげて、他に何をテストすべきかを教えてくれます。

あなたが持っているものは、分解すれば実際に簡単にテストできます。これが私のアプローチです:

public final static String SERVER_DATA = "Prepared data from the server";

@Test
public void testServerPreparesDataCorrectly() throws Exception {
    ... usual setup ...
    String actual = server.handleRequest( CLIENT_REQUEST );
    assertEquals( SERVER_DATA, actual );
}

public final static String CLIENT_REQUEST = "...";

@Test
public void testClientRequest() throws Exception {
    ... usual setup ...
    String actual = client.getRequestData(...);
    assertEquals( CLIENT_REQUEST, actual );
}

@Test
public void testClientResponseProcessing() throws Exception {
    ... usual setup ...
    client.parseServerResponse( SERVER_DATA );
    ... verify client state ...
}

等々。基本的な考え方は、各プロセス ステップの入力と出力を定数に入れ、予想される入力ごとにプロセス ステップを実装するコードを実行し、出力を検証することです。ほとんどの出力は、他のテストの入力でもあります。

何かが変更された場合は、それに応じて入力/出力を更新します。テストを実行します。また、失敗は、更新する必要があるプロセス ステップを示します。

于 2011-05-04T09:23:39.507 に答える