Тесты пользовательского интерфейса в Compose используют семантику для взаимодействия с иерархией пользовательского интерфейса. Семантика, как следует из названия, придает смысл элементу пользовательского интерфейса. В этом контексте "фрагмент интерфейса" (или элемент) может означать что угодно – от одной composable-функции до полноэкранного режима. Дерево семантики генерируется вместе с иерархией пользовательского интерфейса и описывает ее.
Подробнее о семантике в Compose…
Рисунок 1. Типичная иерархия интерфейса и ее дерево семантики.
Фреймворк семантики в основном используется для специальных возможностей, поэтому тесты используют информацию об иерархии пользовательского интерфейса, предоставляемую семантикой. Разработчики сами решают, какие данные и в каком объеме предоставлять.
Рисунок 2. Обычная кнопка со значком и текстом.
Например, для кнопки, состоящей из значка и текстового элемента, дерево семантики по умолчанию содержит только текстовую метку "Нравится". Это связано с тем, что некоторые составные элементы, такие как Text, уже предоставляют некоторые свойства дереву семантики. Вы можете добавить свойства в дерево семантики с помощью Modifier.
MyButton(
modifier = Modifier.semantics { contentDescription = "Add to favorites" }
)
Дополнительные ресурсы
- Тестирование приложений для Android. На этой целевой странице вы найдете общую информацию об основах и методах тестирования.
- Основы тестирования. Узнайте больше об основных концепциях тестирования приложений для Android.
- Локальные тесты. Некоторые тесты можно запускать локально на рабочей станции.
- Инструментальные тесты. Рекомендуем также проводить инструментальные тесты. То есть тесты, которые запускаются непосредственно на устройстве.
- Непрерывная интеграция. Непрерывная интеграция позволяет интегрировать тесты в конвейер развертывания.
- Тестируйте приложение на экранах разных размеров. Пользователи могут запускать приложение на самых разных устройствах.
- Espresso. Хотя этот инструмент предназначен для интерфейсов на основе представлений, он может быть полезен для некоторых аспектов тестирования Compose.