Przetestuj interfejs aplikacji, aby sprawdzić, czy kod tworzenia wiadomości działa prawidłowo. Pozwoli to wykryć błędy na wczesnym etapie i poprawić 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 sprawdzają 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.
Na początek warto zapoznać się z przewodnikiem Automatyzowanie testów interfejsu. Pokazuje on, jak zautomatyzować testy wykonywane na urządzeniu, w tym przy użyciu widoków.
Kluczowe pojęcia
Poniżej przedstawiamy kilka najważniejszych koncepcji dotyczących testowania kodu Compose.
- Semantyka: testy komponowania współpracują z interfejsem za pomocą semantyki, która nadaje znaczenie elementom interfejsu i jest generowana wraz z hierarchią interfejsu.
- Interfejsy API do testowania: Compose udostępnia interfejsy API do testowania, które umożliwiają znajdowanie elementów, tworzenie twierdzeń dotyczących ich stanu i właściwości oraz wykonywanie działań w celu symulowania interakcji z użytkownikiem.
- Synchronizacja: domyślnie testy funkcji tworzenia wiadomości są automatycznie synchronizowane z interfejsem użytkownika i czekają na stan bezczynności przed wykonywaniem asercji lub wykonywaniem innych czynności.
- Współdziałanie: w aplikacjach hybrydowych testy mogą płynnie współdziałać z elementami korzystającymi z tworzenia i wyświetlania oraz integrować się z innymi platformami testowymi.
Ściągawka dotycząca testowania
Aby poznać wszystkie najważniejsze tematy związane z testowaniem w Compose, zapoznaj się z ściągawką dotyczącą testów.
Konfiguracja
Skonfiguruj aplikację, aby umożliwić testowanie kodu Compose.
Najpierw do pliku build.gradle
modułu zawierającego testy interfejsu użytkownika dodaj 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")
Moduł ten zawiera ComposeTestRule
i implementację AndroidComposeTestRule
na Androida. Dzięki tej regule 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 interfejsu użytkownika w 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 docelowa testowania na Androida zawiera szersze omówienie podstaw i technik testowania.
- Podstawy testowania: dowiedz się więcej o podstawowych założeniach testowania aplikacji na Androida.
- Testy lokalne: niektóre testy możesz przeprowadzać lokalnie na swoim komputerze.
- Testy z instrumentacją: warto też przeprowadzać testy z instrumentacją. 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 przeprowadzić testy na różnych rozmiarach ekranu.
- Espresso: chociaż wiedza o Espresso jest przeznaczona dla interfejsu opartego na widoku, może okazać się przydatna w niektórych aspektach testowania funkcji Compose.
Ćwiczenia z programowania
Aby dowiedzieć się więcej, skorzystaj z kompilacji kodu testowego Jetpack Compose.
Próbki
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 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 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 functionalJetnews sample
Jetchat sample
Now in Android App