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