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