Testowanie układu tworzenia wiadomości

Przetestuj interfejs użytkownika aplikacji, aby sprawdzić, czy kod Compose działa prawidłowo. Dzięki temu możesz wcześnie wykrywać błędy i poprawiać jakość aplikacji.

Compose udostępnia zestaw interfejsów API do testowania, które umożliwiają znajdowanie elementów, weryfikowanie ich atrybutów i wykonywanie działań użytkownika. Interfejsy API zawierają też zaawansowane funkcje, takie jak manipulowanie czasem. Korzystaj z tych interfejsów API, aby tworzyć niezawodne testy, które weryfikują działanie aplikacji.

Wyświetlenia

Jeśli pracujesz z widokami, a nie z Compose, zapoznaj się z ogólnymi informacjami w sekcji Testowanie aplikacji na Androidzie.

Dobrym punktem wyjścia jest w szczególności przewodnik Automatyzacja testów interfejsu użytkownika. Pokazuje on, jak zautomatyzować testy, które są wykonywane na urządzeniu, m.in. przy użyciu widoków.

Kluczowe pojęcia

Oto kilka kluczowych zagadnień związanych z testowaniem kodu w Compose:

  • Semantyka: semantyka nadaje znaczenie interfejsowi, umożliwiając testom interakcję z określonymi elementami.
  • Interfejsy API do testowania: umożliwiają znajdowanie elementów, weryfikowanie ich atrybutów i wykonywanie działań użytkownika.
  • Synchronizacja: weryfikuje, czy testy czekają na nieaktywność interfejsu użytkownika przed wykonaniem działań lub stwierdzeniami.
  • Interoperacyjność: interoperacyjność umożliwia testowanie elementów opartych na Compose i widżetach w tej samej aplikacji.

Skróty klawiszowe testowania

Aby zapoznać się ze wszystkimi najważniejszymi tematami dotyczącymi testowania w Compose, skorzystaj z ściągawki dotyczącej testów.

Konfiguracja

Skonfiguruj aplikację, aby umożliwić testowanie kodu Compose.

Najpierw dodaj do pliku build.gradle modułu zawierającego testy UI te zależności:

// 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")

Ten moduł zawiera ComposeTestRule i implementację na Androida o nazwie AndroidComposeTestRule. Za pomocą tej reguły możesz ustawić tworzenie treści lub uzyskać dostęp do aktywności. Reguły tworzysz za pomocą funkcji fabrycznych: createComposeRule lub createAndroidComposeRule, jeśli potrzebujesz dostępu do aktywności. Typowy test UI dla Compose wygląda tak:

// 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()
    }
}

Dodatkowe materiały

  • Testowanie aplikacji na Androida: główna strona z informacjami o testowaniu aplikacji na Androida zawiera więcej informacji o podstawach i technikach testowania.
  • Podstawy testowania: dowiedz się więcej o podstawowych koncepcjach testowania aplikacji na Androida.
  • Testy lokalne: niektóre testy możesz przeprowadzać lokalnie na swoim komputerze.
  • Testy z użyciem instrumentacji: warto też przeprowadzać testy z użyciem instrumentacji. Chodzi o testy, które są wykonywane bezpośrednio na urządzeniu.
  • Tryb ciągłej integracji: Tryb ciągłej integracji umożliwia zintegrowanie testów z potokiem wdrożeniowym.
  • Testowanie różnych rozmiarów ekranu: ze względu na dużą liczbę urządzeń dostępnych dla użytkowników, należy przetestować różne rozmiary ekranu.
  • Espresso: chociaż jest ono przeznaczone do interfejsów użytkownika opartych na widokach, wiedza o Espresso może być przydatna w niektórych aspektach testowania Compose.

Ćwiczenia z programowania

Aby dowiedzieć się więcej, skorzystaj z kompilacji kodu testowego Jetpack Compose.

Próbki

Jetchat is a sample chat app built with Jetpack Compose. To try out this sample app, use the latest stable version of Android Studio. You can clone this repository or import the project from Android Studio following the steps here. This sample

Jetnews is a sample news reading app, built with Jetpack Compose. The goal of the sample is to showcase the current UI capabilities of Compose. To try out this sample app, use the latest stable version of Android Studio. You can clone this repository

Learn how this app was designed and built in the design case study, architecture learning journey and modularization learning journey. This is the repository for the Now in Android app. It is a work in progress 🚧. Now in Android is a fully functional