Testowanie ułatwień dostępu pozwala spojrzeć na aplikację z perspektywy wszystkich użytkowników, w tym osób, które potrzebują ułatwień dostępu. Ta forma testowania może ujawnić możliwości rozwijania i ulepszania aplikacji.
Na tej stronie opisujemy, jak dodawać mechanizmy kontroli ułatwień dostępu do istniejących testów Espresso. Więcej informacji o ułatwieniach dostępu znajdziesz w przewodniku po ułatwieniach dostępu.
Włącz sprawdzanie
Możesz włączyć i skonfigurować testowanie ułatwień dostępu za pomocą klasy AccessibilityChecks
:
Kotlin
import androidx.test.espresso.accessibility.AccessibilityChecks @RunWith(AndroidJUnit4::class) @LargeTest class MyWelcomeWorkflowIntegrationTest { init { AccessibilityChecks.enable() } }
Java
import androidx.test.espresso.accessibility.AccessibilityChecks; @RunWith(AndroidJUnit4.class) @LargeTest public class MyWelcomeWorkflowIntegrationTest { @BeforeClass public void enableAccessibilityChecks() { AccessibilityChecks.enable(); } }
Domyślnie testy są przeprowadzane podczas wykonywania dowolnego działania związanego z wyświetlaniem zdefiniowanego w ViewActions
. Każde sprawdzanie obejmuje widok, w którym wykonywane jest działanie, a także wszystkie widoki podrzędne. Podczas każdego sprawdzania możesz ocenić całą hierarchię widoków ekranu, przekazując true
do setRunChecksFromRootView()
, jak pokazano w tym fragmencie kodu:
Kotlin
AccessibilityChecks.enable().setRunChecksFromRootView(true)
Java
AccessibilityChecks.enable().setRunChecksFromRootView(true);
Pomiń podzbiory wyników
Gdy Espresso sprawdzi ułatwienia dostępu w Twojej aplikacji, może pojawić się kilka możliwości poprawy ułatwień dostępu, które nie będą od razu działać. Jeśli chcesz, by testy espresso nie kończyły się ciągłym niepowodzeniem z powodu takich wyników, możesz je tymczasowo zignorować. Test ułatwień dostępu (ATF) udostępnia tę funkcję za pomocą metody setSuppressingResultMatcher()
, która powoduje, że Espresso pomija wszystkie wyniki, które pasują do danego wyrażenia dopasowania.
Jeśli wprowadzasz w aplikacji zmiany dotyczące jednego z aspektów ułatwień dostępu, warto, aby aplikacja Espresso wyświetlała wyniki dotyczące jak największej liczby innych aspektów ułatwień dostępu. Z tego powodu najlepiej unikać tylko konkretnych znanych możliwości poprawy.
Gdy tymczasowo pomijasz wyniki z testów ułatwień dostępu, którymi planujesz zająć się później, pamiętaj, aby przypadkowo nie pomijać podobnych wyników. Z tego powodu należy używać dopasowań o wąskim zakresie. Aby to zrobić, wybierz dopasowanie, tak aby Espresso pomijał dany wynik tylko wtedy, gdy spełnia każdy z tych warunków ułatwień dostępu:
- Testy ułatwień dostępu określonego typu, np. sprawdzające rozmiar docelowych elementów dotykowych.
- Mechanizmy kontroli ułatwień dostępu oceniają określony element interfejsu, np. przycisk.
W części strony widocznej na ekranie definiuje kilka dopasowań
pomagających wskazać, które wyniki mają być wyświetlane w teście espresso. Poniższy przykład pomija wyniki sprawdzania kontrastu kolorów pojedynczego elementu TextView
. Identyfikator elementu to countTV
.
Kotlin
AccessibilityChecks.enable().apply { setSuppressingResultMatcher( allOf( matchesCheck(TextContrastCheck::class.java), matchesViews(withId(R.id.countTV)) ) ) }
Java
AccessibilityValidator myChecksValidator = AccessibilityChecks.enable() .setSuppressingResultMatcher( allOf( matchesCheck(TextContrastCheck.class), matchesViews(withId(R.id.countTV))));