Семантика

Тесты пользовательского интерфейса в Compose используют семантику для взаимодействия с иерархией пользовательского интерфейса. Семантика, как следует из названия, придает смысл части пользовательского интерфейса. В этом контексте «часть пользовательского интерфейса» (или элемент) может означать что угодно: от отдельного компонуемого элемента до полного экрана. Дерево семантики генерируется вместе с иерархией пользовательского интерфейса и описывает иерархию.

Более подробную информацию о семантике в целом можно найти в статье Семантика в Compose .

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

Рисунок 1. Типичная иерархия пользовательского интерфейса и ее семантическое дерево.

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

Кнопка, содержащая графику и текст

Рисунок 2. Типичная кнопка, содержащая значок и текст.

Например, если кнопка состоит из значка и текстового элемента, то дерево семантики по умолчанию содержит только текстовую метку «Нравится». Это связано с тем, что некоторые компонуемые элементы, такие как Text , уже предоставляют некоторые свойства дереву семантики. Вы можете добавить свойства в дерево семантики с помощью Modifier .

MyButton(
    modifier = Modifier.semantics { contentDescription = "Add to favorites" }
)

Дополнительные ресурсы

  • Тестирование приложений на Android : главная целевая страница тестирования Android предоставляет более широкий обзор основ и методов тестирования.
  • Основы тестирования : узнайте больше об основных концепциях тестирования приложений Android.
  • Локальные тесты : вы можете запустить некоторые тесты локально, на своей рабочей станции.
  • Инструментированные тесты : Хорошей практикой является также запуск инструментированных тестов. То есть тестов, которые запускаются непосредственно на устройстве.
  • Непрерывная интеграция : Непрерывная интеграция позволяет интегрировать ваши тесты в конвейер развертывания.
  • Тестируйте разные размеры экранов : поскольку пользователям доступно множество устройств, вам следует тестировать экраны разных размеров.
  • Espresso : хотя знание Espresso и предназначено для пользовательских интерфейсов на основе View, оно все равно может быть полезно для некоторых аспектов тестирования Compose.