Тест пользовательского интерфейса в XCode, представленный на WWDC 2015 Уиллом Тернером и Брук Каллахан. Они объявляют об огромном расширении технологии тестирования в инструментах разработчика XCode.

Зачем нужны UI-тесты?

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

Простой пользовательский интерфейс с двумя текстовыми полями против сложного текстового поля

Представьте, что вам нужно разработать простую форму с двумя текстовыми полями. Тестирование и разработка вручную путем ввода электронной почты и пароля для проверки ввода будут легкими. Просто введите действительный адрес электронной почты и действительный пароль, а затем введите неверный регистр, например, адрес электронной почты или пароль неправильного формата.

Но что, если у вас есть сложное текстовое поле с проверкой в ​​каждом поле? Вам нужно печатать в каждом текстовом поле вручную, это будет утомительно. Почему бы не сделать тест автоматизации? Вам не нужно печатать вручную, XCode сделает это за вас.

Давайте начнем

Рамки

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

XCUIAПриложение

Используйте этот класс для запуска, мониторинга и завершения вашего приложения в тесте пользовательского интерфейса. Просто запустите этот класс в переменную и готово к работе:

let app = XCUIApplication()

Создать проект

Начните с создания проекта, как обычно File -> New -> Project, но не забудьте поставить галочку Include Tests. Xcode автоматически создаст для вас среду тестирования пользовательского интерфейса. Вы найдете папку с тестами пользовательского интерфейса под деревом проекта.

Подключение компонента пользовательского интерфейса к среде тестирования пользовательского интерфейса

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

Другой способ — создать структуру или класс со списком идентификаторов. Затем вызовите идентификатор, если это необходимо.

Создать тестовый пример

После подключения некоторых компонентов давайте сделаем тестовый пример. Во-первых, вам нужно понять, как написать функцию. Функция должна начинаться с «теста», а затем продолжаться именем тестового примера. Например…

После создания нескольких тестовых случаев давайте заполним функцию. Функция тестового примера состоит из нескольких шагов:

  1. Перечислите все идентификаторы компонентов.
  2. Настройте виджет и подключитесь к идентификатору.
  3. Фиктивные данные.
  4. Создайте тестовый поток.
  5. Утвердите тест, связанный с ожиданиями пользователя.

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

Как насчет недопустимого теста? вот так…

Заключение

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