Как Вы делаете модульный тест, когда результаты варьируются?

Да! Для iOS проверьте iOS SDK. Он включает в себя возможность подписывать, когда телефон находится в автономном режиме, и автоматическую синхронизацию, когда телефон возвращается в онлайн.

В качестве альтернативы вы можете использовать SDK оболочки Objective-C .

Для Android у нас есть Java SDK .

Для iOS или Android вы также можете вызывать API напрямую из своего мобильного приложения.

Пожалуйста, задавайте дополнительные вопросы, если у вас возникнут какие-либо трудности. Спасибо за использование DocuSign!

10
задан kevindaub 7 January 2009 в 01:10
поделиться

5 ответов

Краткий обзор веб-сервис с помощью прокси, который можно дразнить. Имейте различные значения возврата своего ложного веб-сервиса, представляющие нормальные данные и угловые случаи. Также моделируйте получение исключений из веб-сервиса. Удостоверьтесь, что Вы кодируете работы при этих условиях, и можно быть довольно уверены, что это будет работать с любыми значениями предоставления веб-сервиса.

Взгляд jMock для насмешки Java.

26
ответ дан 3 December 2019 в 13:56
поделиться

Строго говоря поблочного тестирования, можно только протестировать единицы, которые имеют детерминированное поведение.

Тест, который соединяется с внешним веб-сервером, является интеграционным тестом.

Решение состоит в том, чтобы дразнить HTTPURLConnection - то есть, создать класс в Ваших модульных тестах, который происходит из класса HTTPURLConnection, и это возвращает hardcoded или parameterizable значение.Править: заметьте, что это может быть сделано maunally без любой платформы насмешки.

Класс, который запрашивает веб-сервер, не должен быть instanciate HTTPURLConnection, но получать его через параметр. В модульных тестах Вы создаете HTTPURLConnectionMock, и передает его классу, который опрашивает веб-сервер, который будет использовать его, как это использует реальный HTTPURLConnection. В производственном коде Вы создаете реальный HTTPURLConnection и передаете его классу.

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

6
ответ дан 3 December 2019 в 13:56
поделиться

Ваш вопрос немного открыт, но существуют определенно некоторые тестируемые опции просто с помощью информации выше:

  1. Вы могли протестировать, работает ли запрос вообще. Утверждайте, что необходимо возвратить непустое / непустой набор результатов.
  2. Вы могли протестировать, являются ли результаты запроса допустимым набором результатов. Утверждайте, что результаты должны передать Ваш код доступа (так в этой точке, Вы знаете, что данные являются непустыми, не бессмысленными и возможно полезными).
  3. Если Вы знаете что-нибудь о схеме данных / описание данных, Вы могли бы утверждать, что поля разумны друг относительно друга. Например, если Вы получаете результат с вертолетом, он не должен быть связан с высотой отрицательных 100 метров....
  4. Если Вы знаете что-нибудь о вероятностном распределении данных, необходимо смочь собрать ряд данных и утверждать, что получающееся распределение в стандартном отклонении того, что Вы ожидали бы видеть.

Я уверен, что еще с некоторой информацией, Вы получите груду полезных предложений.

3
ответ дан 3 December 2019 в 13:56
поделиться

Это походит на Ваше тестирование на слишком высоком уровне. Рассмотрите насмешку интерфейса веб-сервиса и запись других модульных тестов на слое данных тот доступ база данных. Еще некоторая деталь здесь могла бы сделать этот вопрос легче ответить, например, ситуация, которую Вы пытаетесь протестировать.

Я обычно ожидал бы, что результаты модульного теста не изменятся или по крайней мере будут в диапазоне, который Вы ожидаете

3
ответ дан 3 December 2019 в 13:56
поделиться

Проблемой, с которой я столкнулся, являются с замысловатым (значение "дрянного") модели данных, где Вы никогда не можете быть уверены, что проблемы происходят из-за ошибок данных или ошибок в коде.

Признак этого - когда Ваше приложение работает отлично, проходит все тесты, и т.д. с дразнившими данными или новым набором данных, но повреждается ужасно при запуске приложения на реальных данных.

1
ответ дан 3 December 2019 в 13:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: