Проверьте макет Compose

Протестируйте пользовательский интерфейс вашего приложения, чтобы убедиться, что поведение вашего кода Compose является правильным. Это позволяет вам выявлять ошибки на ранних стадиях и повышать качество вашего приложения.

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

Просмотры

Если вы работаете с представлениями вместо Compose, см. общий раздел Тестирование приложений на Android .

В частности, хорошим местом для начала является руководство Automate UI tests . В нем изложено, как можно автоматизировать тесты, которые выполняются на устройстве, в том числе при использовании представлений.

Ключевые концепции

Ниже приведены некоторые ключевые концепции для тестирования кода Compose.

  • Семантика : тесты Compose взаимодействуют с пользовательским интерфейсом, используя семантику, которая придает смысл частям пользовательского интерфейса и генерируется вместе с иерархией пользовательского интерфейса.
  • Тестовые API : Compose предоставляет тестовые API для поиска элементов, создания утверждений об их состоянии и свойствах, а также выполнения действий для имитации взаимодействия с пользователем.
  • Синхронизация : по умолчанию тесты Compose автоматически синхронизируются с пользовательским интерфейсом, ожидая его бездействия, прежде чем делать утверждения или выполнять действия.
  • Взаимодействие : в гибридных приложениях тесты могут беспрепятственно взаимодействовать как с элементами Compose, так и с элементами View, а также интегрироваться с другими фреймворками тестирования.

Тестирование шпаргалка

Ознакомьтесь со шпаргалкой по тестированию, чтобы получить обзор всех ключевых тем, которые вам следует изучить при тестировании в Compose.

Настраивать

Настройте свое приложение так, чтобы оно позволяло вам тестировать код создания.

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

// Test rules and transitive dependencies:
androidTestImplementation("androidx.compose.ui:ui-test-junit4:$compose_version")
// Needed for createComposeRule(), but not for createAndroidComposeRule():
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() 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 предоставляет более широкий обзор основ и методов тестирования.
  • Основы тестирования : узнайте больше об основных концепциях тестирования приложений Android.
  • Локальные тесты : вы можете запустить некоторые тесты локально, на своей рабочей станции.
  • Инструментированные тесты : Хорошей практикой является также запуск инструментированных тестов. То есть тестов, которые запускаются непосредственно на устройстве.
  • Непрерывная интеграция : Непрерывная интеграция позволяет интегрировать ваши тесты в конвейер развертывания.
  • Тестируйте разные размеры экранов : поскольку пользователям доступно множество устройств, вам следует тестировать экраны разных размеров.
  • Espresso : хотя знание Espresso и предназначено для пользовательских интерфейсов на основе View, оно все равно может быть полезно для некоторых аспектов тестирования Compose.

Кодовая лаборатория

Чтобы узнать больше, попробуйте выполнить лабораторную работу по тестированию Jetpack Compose .

Образцы

{% дословно %} {% endverbatim %} {% дословно %} {% endverbatim %}