辅助功能检查

辅助功能测试使您可以从整个用户群体的角度(包括有辅助功能需求的用户)体验您的应用。这种形式的测试可以揭示使您的应用更强大和通用的机会。

此页面介绍如何向现有的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中定义的任何视图操作时,都会运行这些检查。每个检查都包含执行操作的视图以及所有后代视图。您可以通过将true传递给setRunChecksFromRootView()来评估屏幕的整个视图层次结构,如下面的代码片段所示

Kotlin

AccessibilityChecks.enable().setRunChecksFromRootView(true)

Java

AccessibilityChecks.enable().setRunChecksFromRootView(true);

抑制结果子集

Espresso在您的应用上运行辅助功能检查后,您可能会发现一些改进应用辅助功能的机会,但您无法立即解决这些问题。为了防止Espresso测试由于这些结果而不断失败,您可以暂时忽略它们。辅助功能测试框架 (ATF) 使用setSuppressingResultMatcher()方法提供此功能,该方法指示Espresso抑制满足给定匹配器表达式的所有结果。

当您对应用进行更改以解决辅助功能的一个方面时,Espresso最好显示尽可能多的其他辅助功能方面的结果。因此,最好只抑制特定已知的改进机会。

当您暂时抑制您计划稍后解决的辅助功能测试结果时,务必不要意外地抑制类似的结果。为此,请使用范围较窄的匹配器。为此,请选择一个匹配器,以便只有当Espresso满足以下**每个**辅助功能检查时,才会抑制给定结果

  1. 特定类型的辅助功能检查,例如检查触摸目标大小的检查。
  2. 评估特定UI元素(例如按钮)的辅助功能检查。

ATF定义了多个匹配器,以帮助您定义在Espresso测试中显示哪些结果。以下示例抑制与单个TextView元素的颜色对比度相关的检查结果。该元素的ID为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))));