Семантика

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

Вы можете узнать больше о семантике в разделе Семантика в Compose .

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

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

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

Кнопка, содержащая изображение и текст

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

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

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

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

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