Тестирование специальных возможностей позволяет взглянуть на приложение глазами всей пользовательской базы, в том числе пользователей с особыми потребностями. Такое тестирование может выявить возможности сделать ваше приложение более мощным и универсальным.
На этой странице описано, как добавить проверки специальных возможностей в существующие тесты Espresso. Дополнительную информацию о специальных возможностях можно найти в руководствах по специальным возможностям.
Включить проверки
Включить и настроить тестирование специальных возможностей можно с помощью класса 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();
}
}
По умолчанию проверки выполняются при любом действии с представлением, определенном в ViewActions. Каждая проверка включает в себя представление, в котором выполняется действие, а также все дочерние представления. Вы можете оценивать всю иерархию View на экране во время каждой проверки, передавая true в setRunChecksFromRootView(), как показано в следующем фрагменте кода:
Kotlin
AccessibilityChecks.enable().setRunChecksFromRootView(true)
Java
AccessibilityChecks.enable().setRunChecksFromRootView(true);
Как скрыть часть результатов
После того как Espresso проверит доступность вашего приложения, вы можете обнаружить несколько проблем, которые не удастся устранить сразу. Чтобы тесты Espresso не завершались сбоем из-за этих результатов, вы можете временно игнорировать их. В Accessibility Test Framework (ATF) для этого используется метод setSuppressingResultMatcher(), который указывает Espresso игнорировать все результаты, соответствующие заданному выражению.
Когда вы вносите в приложение изменения, связанные с одним аспектом специальных возможностей, полезно, чтобы Espresso показывал результаты для как можно большего числа других аспектов. Поэтому лучше отключать только определенные известные возможности для улучшения.
Если вы временно скрываете результаты тестирования специальных возможностей, которые планируете исправить позже, важно случайно не скрыть похожие результаты. Поэтому используйте сопоставители с узкой областью действия. Для этого выберите сопоставитель, чтобы Espresso скрывал результат, только если он соответствует каждой из следующих проверок доступности:
- Проверки специальных возможностей определенного типа, например размера области прикосновения.
- Проверки специальных возможностей, которые оценивают определенный элемент интерфейса, например кнопку.
ATF определяет несколько сопоставителей, которые помогают указать, какие результаты нужно показывать в тестах Espresso. В примере ниже подавляются результаты проверок, связанных с контрастностью цвета одного элемента TextView. Идентификатор элемента – 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))));