Существует три основных уровня тестирования:
Я могу обрабатывать случаи 1. и 2. с помощью Xcode iOS Unit Testing Bundle
и iOS UI Testing Bundle
я не знаю, как писать тесты из пункта 3.
Я хотел бы написать тесты, чтобы проверить, правильно ли мое приложение интегрируется с серверной частью, устройством BLE и т. д.
Обратите внимание, что я уже написал модульные тесты, которые запускаю с использованием CI.
Интеграционный тест не следует запускать в CI, поскольку он зависит от внешней среды. Я хотел бы запустить его только вручную.
Как справиться с этим в Xcode? Второй Unit Testing Target
? Любой совет? Как вы с этим справляетесь в своих системах?
В зависимости от стиля интеграционного теста, который вам нужен, вы можете использовать выделенный модуль или цель тестов пользовательского интерфейса.
Из вашего вопроса я предполагаю, что стиль, который вы хотите иметь, склоняется к тестированию черного ящика с другими реальными системами. Если это так, выделенная цель тестов пользовательского интерфейса выполнит эту работу.
С помощью тестов пользовательского интерфейса вы можете делать такие вещи, как открытие других приложений на устройстве и проверять, как ваше приложение взаимодействует с ними. Например, эта почта показывает, как написать тест пользовательского интерфейса, который использует приложение «Сообщения» для тестирования универсальных ссылок.
Я бы использовал выделенную цель модульных тестов только в том случае, если вам нужно контролировать часть кода в вашем приложении, например, заглушать сетевые запросы. Но это не совсем соответствует тому определению интеграционного теста, которое вы дали.