0Pricing
Jetpack Compose Academy · Lekcja

createComposeRule i findery

Skonfiguruj test Compose i lokalizuj węzły

createComposeRule i findery to bezpłatna lekcja Jetpack Compose Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Jetpack Compose Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Jetpack Compose Academy zawiera 4 lekcji w sumie.

Dlaczego testować interfejs?

Testowanie ręczne jest powolne i łatwo o nim zapomnieć. Test interfejsu uruchamia funkcję Composable i automatycznie ją sprawdza, wykrywając błędy, zanim zrobią to użytkownicy. 🧪

Poznaj regułę testów Compose

Każdy test Compose rozpoczyna się od reguły testowej. Umieszcza ona funkcje Composable w kontrolowanym środowisku, dzięki czemu kod testu może je renderować, sprawdzać i obsługiwać.

createComposeRule

W przypadku czystego interfejsu bez Activity funkcja createComposeRule udostępnia lekką regułę. Dołącz ją jako pole JUnit @get:Rule w klasie testowej.

@get:Rule
val composeTestRule = createComposeRule()

setContent w teście

Użyj na regule funkcji setContent, aby wyrenderować sprawdzaną funkcję Composable. To interfejs użytkownika testu, podobnie jak w rzeczywistym Activity.

composeTestRule.setContent {
    Greeting(name = "Ada")
}

Findery lokalizują węzły

Gdy interfejs jest już wyświetlony, potrzebujesz findera, aby pobrać konkretny element. Findery przeszukują drzewo semantyki i zwracają węzeł, który można sprawdzić.

onNodeWithText

Najłatwiejszym finderem jest onNodeWithText. Przekaż mu tekst widoczny na ekranie, a zwróci dokładnie ten węzeł do sprawdzenia.

composeTestRule.onNodeWithText("Hello, Ada!")

onNodeWithContentDescription

W przypadku obrazów i ikon bez widocznego tekstu użyj onNodeWithContentDescription. Dopasowuje on etykietę dostępności, dzięki czemu testy i czytniki ekranu pozostają spójne.

composeTestRule.onNodeWithContentDescription("Profile photo")

Jeden węzeł czy wiele

onNode znajduje jedno dopasowanie i kończy się błędem, jeśli jest ich kilka. Gdy oczekujesz grupy elementów, użyj onAllNodes, aby zamiast tego otrzymać kolekcję.

composeTestRule.onAllNodesWithText("Item")

Szybkie sprawdzenie

Chcesz znaleźć przycisk ikony, który nie ma widocznego tekstu. Który finder będzie najlepszy?

Findery są leniwe

Finder nie wyszukuje natychmiast. Rejestruje zamiar, a właściwe wyszukiwanie odbywa się dopiero po wywołaniu asercji lub akcji na finderze.

Pomocne komunikaty o błędach

Gdy wyszukiwarka niczego nie znajdzie, test kończy się niepowodzeniem z jasnym komunikatem i wyświetla nawet bieżące drzewo węzłów. Dzięki temu szybkie znalezienie brakującego elementu jest łatwe.

createAndroidComposeRule

Potrzebują Państwo rzeczywistego Activity, zasobów lub nawigacji? Należy użyć createAndroidComposeRule, które uruchamia Activity i nadal udostępnia ten sam interfejs wyszukiwarek.

@get:Rule
val rule = createAndroidComposeRule<MainActivity>()

Podsumowanie: reguły i wyszukiwarki

Skonfigurowali Państwo regułę Compose, renderują interfejs za pomocą setContent, a następnie lokalizują elementy przy użyciu wyszukiwarek, takich jak onNodeWithText. Ta podstawa jest wykorzystywana w każdym tworzonym teście Compose. 🎉

Często zadawane pytania

Czy lekcja „createComposeRule i findery” jest bezpłatna?

Tak — pełny tekst „createComposeRule i findery” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Jetpack Compose Academy, przejdź na CoddyKit PRO. Kurs Jetpack Compose Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „createComposeRule i findery”?

Skonfiguruj test Compose i lokalizuj węzły Ćwiczysz Jetpack Compose Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Jetpack Compose Academy?

Nie wymagamy żadnego doświadczenia. Jetpack Compose Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „createComposeRule i findery”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Jetpack Compose Academy?

Tak. Każda lekcja Jetpack Compose Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. createComposeRule i findery
  2. Asercje i wykonywanie akcji
  3. Semantyka i tagi testowe
  4. Testowanie ViewModeli i przepływów
← Powrót do Jetpack Compose Academy