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 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.
Dobrym punktem wyjścia jest w szczególności przewodnik Automatyzacja testów interfejsu użytkownika. Pokazuje on, jak zautomatyzować testy wykonywane na urządzeniu, w tym przy użyciu widoków.
Kluczowe pojęcia
Poniżej znajdziesz kilka kluczowych pojęć związanych z testowaniem 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 w Compose automatycznie synchronizują się z interfejsem użytkownika, oczekując na jego bezczynność przed zgłaszaniem stwierdzeń lub wykonywaniem działań.
- Współpraca: w aplikacjach hybrydowych testy mogą bezproblemowo współpracować z elementami opartymi na Compose i View oraz integrować się z innymi frameworkami testowymi.
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 interfejsu użytkownika w przypadku 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
Polecane dla Ciebie
- Uwaga: tekst linku jest wyświetlany, gdy obsługa JavaScript jest wyłączona
- Semantyka w edytorze wiadomości
- Okna w edytorze
- Inne kwestie