ユーザー補助機能をテストすることで、以下の観点からアプリを体験できます。 ユーザー補助を必要とするユーザーを含むユーザーベース全体。この形式の テストを実施することで、アプリをさらに強力で汎用的なものにする方法を特定できます。
このページでは、既存の 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 に指示します。
一致します。
ユーザー補助機能の 1 つの観点に対処する変更をアプリに加えるとき、他の観点に関する結果をできるだけ多く Espresso に表示させるのが有益です。そのため、特定の改善点のみ抑制することをおすすめします。
後で対処することを予定しているユーザー補助機能テスト結果の表示を一時的に抑制するときは、似たような結果を誤って抑制しないようにすることが重要です。このために、範囲を限定したマッチャーを使用します。これを行うには、 マッチャー Espresso が特定の結果を抑制するのは、次のすべての条件を満たす場合に限られます。 次のユーザー補助機能チェックを利用できます。
- タッチ ターゲットのサイズを確認するなど、特定タイプのユーザー補助機能チェック。
- ボタンなどの特定の UI 要素を評価するユーザー補助機能チェック。
ATF ではいくつかのマッチャーが定義されています。
Espresso テストで表示する結果を定義する際に役立つヒントをご紹介します。次の例では、1 つの 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))));