Как проверить синхронизацию между приложением rails и мобильным клиентом? - PullRequest
0 голосов
/ 04 мая 2011

Мы должны быть уверены, что наше веб-приложение и мобильный клиент общаются правильно.

Существует двусторонняя связь от сервера (приложение Rails с тестированием rspec) к мобильному клиенту (приложение Ruby, имеет среду тестирования mspec) и от мобильного клиента к серверу.

Таким образом, чтобы убедиться, что механизм синхронизации работает должным образом, нам нужно проверить следующие вещи:

  • Сервер правильно подготавливает данные.
  • Мобильный клиент запрашивает и получает правильные данные.
  • Мобильный клиент готовит данные для отправки на сервер правильно.
  • Сервер получает и анализирует правильные данные из мобильный клиент.
  • Серверы отправляют ответ на мобильный клиент, который все отлично.
  • Мобильный клиент следует выполнить соответствующие действия на устройстве.

Как проверить это изолированно?

1 Ответ

0 голосов
/ 04 мая 2011

Что касается всех тестов, не планируйте неожиданные. Начните с того, что вы знаете. Непредвиденный скоро поднимет свою уродливую голову достаточно, чтобы сказать вам, что еще вы должны проверить.

То, что у вас есть, на самом деле просто проверить, если разбить его на части. Вот мой подход:

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 ...
}

и так далее. Основная идея состоит в том, чтобы поместить входные и выходные данные каждого шага процесса в константу, а затем запустить код, который реализует шаг процесса для каждого ожидаемого ввода, и проверить вывод. Где большинство выходов также являются входами для других тестов.

Если что-то меняется, вы соответственно обновляете входы / выходы. Запустите тесты. И ошибки скажут вам, какие этапы процесса вы должны обновить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...