通过辅助功能测试,您可以从整个用户群体的角度体验您的应用,包括有辅助功能需求的用户。这种形式的测试可以揭示使您的应用更强大和通用的机会。
此页面介绍如何将辅助功能检查添加到您现有的 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 满足以下每个辅助功能检查时才抑制给定的结果
- 特定类型的辅助功能检查,例如检查触摸目标大小的检查。
- 评估特定 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))));