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 functionalJetchat sample
Jetnews sample
Now in Android App