Testy interfejsu w funkcji tworzenia wiadomości używają semantyki do interakcji z hierarchią interfejsu. Semantyka, jak wskazuje nazwa, nadaje znaczenie elementowi interfejsu. W tym kontekście „element UI” (czyli element) może oznaczać wszystko, od pojedynczej funkcji kompozycyjnej po cały ekran. Drzewo semantyki jest generowane obok hierarchii UI i opisuje hierarchię.
Więcej informacji o semantyce znajdziesz w artykule Semantyka w tworzeniu wiadomości.
Rysunek 1. Typowa hierarchia UI i jej drzewo semantyczne.
Struktura semantyki jest wykorzystywana głównie w przypadku ułatwień dostępu, więc testy wykorzystują udostępniane przez semantykę informacje o hierarchii UI. To deweloperzy decydują, co i w jakiej ilości chce udostępniać.
Rysunek 2. Typowy przycisk z ikoną i tekstem.
Na przykład przycisk, który składa się z ikony i elementu tekstowego, domyślne drzewo semantyki zawiera tylko etykietę tekstową „Podoba mi się”. Wynika to z faktu, że niektóre funkcje kompozycyjne, takie jak Text
, już udostępniają właściwości drzewa semantycznego. Aby dodać właściwości do drzewa semantyki, użyj Modifier
.
MyButton(
modifier = Modifier.semantics { contentDescription = "Add to favorites" }
)
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 przeprowadzić lokalnie, na swojej stacji roboczej.
- Testy instrumentowane: warto też przeprowadzać testy instrumentowane. Chodzi o testy przeprowadzane bezpośrednio na urządzeniu.
- Tryb ciągłej integracji: tryb ciągłej integracji umożliwia integrację testów z potokiem wdrażania.
- Przetestuj różne rozmiary ekranów: warto przetestować różne rozmiary ekranów w przypadku dużej liczby urządzeń dostępnych dla użytkowników.
- Espresso: chociaż wiedza o Espresso jest przeznaczona dla interfejsu opartego na widoku, może okazać się przydatna w niektórych aspektach testowania funkcji Compose.