Testowanie interfejsu aplikacji, aby sprawdzić, czy kod Compose działa prawidłowo. Pozwala to 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, sprawdzanie ich atrybutów i wykonywanie działań użytkownika. Interfejsy API obejmują też funkcje zaawansowane, takie jak manipulowanie czasem. Używaj tych interfejsów API do tworzenia solidnych testów, które sprawdzają działanie aplikacji.
Widoki
Jeśli zamiast Compose używasz widoków, zapoznaj się z ogólną sekcją Testowanie aplikacji na Androida.
Dobrym źródłem na początek jest przewodnik Automatyzowanie testów interfejsu. Wyjaśnia on, jak zautomatyzować testy uruchamiane na urządzeniu, w tym podczas korzystania z widoków.
Kluczowe pojęcia
Oto kilka kluczowych pojęć związanych z testowaniem kodu Compose:
- Semantyka: semantyka nadaje znaczenie interfejsowi, umożliwiając testom interakcję z określonymi elementami.
- Interfejsy API do testowania: interfejsy API do testowania umożliwiają znajdowanie elementów, sprawdzanie ich atrybutów i wykonywanie działań użytkownika.
- Synchronizacja: synchronizacja sprawdza, czy testy czekają, aż interfejs będzie bezczynny, zanim wykonają działania lub sprawdzą asercje.
- Interoperacyjność: Interoperacyjność umożliwia testom współpracę z elementami opartymi na Compose i View w tej samej aplikacji.
Ściąga dotycząca testowania
Zapoznaj się ze ściągą dotyczącą testowania, aby uzyskać ogólny przegląd wszystkich najważniejszych tematów, które musisz poznać, aby testować w Compose.
Konfiguracja
Skonfiguruj aplikację, aby umożliwić testowanie kodu Compose.
Najpierw dodaj te zależności do pliku build.gradle modułu zawierającego testy interfejsu:
// 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. Dzięki tej regule możesz ustawić zawartość Compose lub uzyskać dostęp do aktywności. Reguły tworzysz za pomocą funkcji fabrykujących,
czyli createComposeRule lub, jeśli potrzebujesz dostępu do aktywności,
createAndroidComposeRule. Typowy test interfejsu 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 dotycząca testowania na Androida zawiera szerszy opis podstaw i technik testowania.
- Podstawy testowania: dowiedz się więcej o podstawowych pojęciach związanych z testowaniem aplikacji na Androida.
- Testy lokalne: niektóre testy możesz uruchamiać lokalnie, na własnej stacji roboczej.
- Testy instrumentowane: warto też uruchamiać testy instrumentowane. Są to testy, które działają bezpośrednio na urządzeniu.
- Tryb ciągłej integracji: tryb ciągłej integracji umożliwia zintegrowanie testów z potokiem wdrażania.
- Testowanie na ekranach o różnych rozmiarach: użytkownicy mają do dyspozycji wiele urządzeń, dlatego warto testować na ekranach o różnych rozmiarach.
- Espresso: chociaż Espresso jest przeznaczone do interfejsów opartych na widokach, wiedza na jego temat może być przydatna w przypadku niektórych aspektów testowania w Compose.
Ćwiczenia z programowania
Aby dowiedzieć się więcej, wykonaj ćwiczenie z programowania Testowanie w Jetpack Compose.
Przykłady
Polecane dla Ciebie
- Uwaga: tekst linku jest wyświetlany, gdy język JavaScript jest wyłączony.
- Semantyka w Compose
- Wcięcia okna w Compose
- Inne kwestie, które warto wziąć pod uwagę