Навыки работы с Android
Посмотреть на GitHubНастройка тестирования Android
android skills add testing-setupПротестируйте пользовательский интерфейс приложения, чтобы убедиться, что код Compose работает правильно. Это позволяет выявлять ошибки на ранних этапах и повышать качество приложения.
Compose предоставляет набор API-интерфейсов тестирования для поиска элементов, проверки их атрибутов и выполнения действий пользователя. API также включают продвинутые функции, такие как манипулирование временем. С помощью этих API можно создавать надежные тесты для проверки работы приложения.
Просмотры
Если вы работаете с представлениями, а не с Compose, ознакомьтесь с общим разделом Тестирование приложений на Android.
Рекомендуем начать с руководства Автоматизация тестирования пользовательского интерфейса. В нем рассказывается, как автоматизировать тесты, которые выполняются на устройстве, в том числе при использовании представлений.
Ключевые понятия
Ниже приведены некоторые ключевые концепции тестирования кода Compose:
- Семантика. Семантика придает смысл вашему пользовательскому интерфейсу, позволяя тестам взаимодействовать с определенными элементами.
- Testing API. Позволяет находить элементы, проверять их атрибуты и выполнять действия пользователя.
- Синхронизация. Проверяет, что тесты ожидают, пока пользовательский интерфейс не станет бездействующим, прежде чем выполнять действия или делать утверждения.
- Совместимость. Тесты могут работать как с элементами Compose, так и с элементами на основе View в одном приложении.
Памятка по тестированию
Ознакомьтесь с памяткой по тестированию, чтобы получить общее представление обо всех ключевых темах, которые вам следует изучить в отношении тестирования в Compose.
Настроить
Настройте приложение, чтобы протестировать код Compose.
Сначала добавьте следующие зависимости в файл build.gradle модуля, содержащего тесты пользовательского интерфейса:
// Test rules and transitive dependencies:
androidTestImplementation("androidx.compose.ui:ui-test-junit4:$compose_version")
// Needed for createComposeRule(), but not for createAndroidComposeRule<YourActivity>():
debugImplementation("androidx.compose.ui:ui-test-manifest:$compose_version")
Этот модуль включает ComposeTestRule и реализацию для Android под названием AndroidComposeTestRule. С помощью этого правила вы можете настроить контент Compose или получить доступ к действию. Правила создаются с помощью фабричных функций: createComposeRule или, если вам нужен доступ к действию, createAndroidComposeRule. Типичный тест пользовательского интерфейса для Compose выглядит следующим образом:
// file: app/src/androidTest/java/com/package/MyComposeTest.kt
class MyComposeTest {
@get:Rule val composeTestRule = createComposeRule()
// use createAndroidComposeRule<YourActivity>() if you need access to
// an activity
@Test
fun myTest() {
// Start the app
composeTestRule.setContent {
MyAppTheme {
MainScreen(uiState = fakeUiState, /*...*/)
}
}
composeTestRule.onNodeWithText("Continue").performClick()
composeTestRule.onNodeWithText("Welcome").assertIsDisplayed()
}
}
Дополнительные ресурсы
- Тестирование приложений для Android. На этой целевой странице вы найдете общую информацию об основах и методах тестирования.
- Основы тестирования. Узнайте больше об основных концепциях тестирования приложений для Android.
- Локальные тесты. Некоторые тесты можно запускать локально на рабочей станции.
- Инструментальные тесты. Рекомендуем также проводить инструментальные тесты. То есть тесты, которые запускаются непосредственно на устройстве.
- Непрерывная интеграция. Непрерывная интеграция позволяет интегрировать тесты в конвейер развертывания.
- Тестируйте приложение на экранах разных размеров. Пользователи могут запускать приложение на самых разных устройствах.
- Espresso. Хотя этот инструмент предназначен для интерфейсов на основе представлений, он может быть полезен для некоторых аспектов тестирования Compose.
Практическая работа
Чтобы узнать больше, пройдите практическую работу по тестированию Jetpack Compose.
Образцы
Рекомендуем
- Примечание. Текст ссылки показывается, когда JavaScript отключен.
- Семантика в Compose
- Вставки окон в Compose
- Другие причины