Как написать интеграционные тесты в Xcode? - PullRequest
2 голосов
/ 10 апреля 2019

Существует три основных уровня тестирования:

  1. Модульный тест - проверка работоспособности каждой функции / единицы кода
  2. Функциональный тест - проверка правильности взаимодействия устройств друг с другом
  3. Интеграционный тест - убедитесь, что наше приложение интегрируется с другими приложениями / API / сервисами, как и ожидалось

Я могу обработать случаи 1. и 2. используя Xcode iOS Unit Testing Bundle и iOS UI Testing Bundle Я не знаю, как писать тесты из пункта 3.

Я хотел бы написать в тесты, чтобы проверить, правильно ли интегрируется мое приложение с серверной частью, BLE-устройством и т. Д.

Обратите внимание, что я уже написал модульные тесты, которые я запускаю с помощью CI.

Интеграционный тест не следует запускать в CI, поскольку он зависит от внешней среды. Я хотел бы запустить его только вручную.

Как справиться с этим в Xcode? Второй Unit Testing Target? Любой совет? Как вы справляетесь с этим в ваших системах?

1 Ответ

1 голос
/ 10 апреля 2019

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

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

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

animation showing an integration level UI test from the linked post

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

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