【Android】CodeLabs:Automated Accessibility Testing using Espressoを勉強しました。
Codelabsと勉強動機?
最近 codelabs を知りました。
ここではステップを区分して、詳しくライブラリなどをどのように適用して使うのか説明されているので、真似しながら勉強すればいいと思いました。
テストコードの勉強の必要性を感じるので、はじめて勉強するのは、espressoでした。
CodeLabs:Automated Accessibility Testing using Espresso
Step 1, 2
Espresso Testは?
UI testです。 重要機能について画面でよく作動するかテストしてくれます。 今回の課題ではカウント上げ下げ機能があり、この機能に問題がないかテストをします。
とりあえず、step2にあるgithubをcloneして、ビルドしてUitestがどのように動くのか確認します
Step 3 Accessibility Testing Framework for Android (ATF)
:ユーザーがアプリを触りやすいかテストするということだと思います。
> espressoテストを活用してアプリのアクセスを評価できる。
> ATFをEspressoテストに統合した後、既存のテストを実行するだけでアクセステストが自動的に追加で実行されます。
Accessibility Checks活性化
build.gradle に
androidTestImplementation 'androidx.test.espresso:espresso-accessibility:3.3.0-alpha05'
書かれている通りにAccessibility Checksを活性化します。そしてテストを起動するとエラーが発生!
タッチボタンが推奨サイズより小さくてエラーになったようです。 表示されている部分を見るときに、タッチ部分が48x48になっている必要があるようです。
(本当にユーザーのアクセシビリティテストですね!)
Espresso.onView(withId(R.id.add_button))
.perform(ViewActions.click())
Accessibility ChecksのためにView Actionsが必要(ない場合はチェックしない)
親切にactivity_main.xmlにどのように修正するかがTODOで書かれています。
android:padding="12dp"
android:contentDescription="@string/subtract_button"
を追加したらエラーが消えました。
Step 5
Accessibility Checksが活性化された場合は、Accessibility Validator機能を活用できます。
setRunChecksFromRootViewで画面の全体ビュー構造を評価できます。
テスト起動するとエラー発生!
テキストビューの色対比が明確でないという問題です。
この程度のエラーでは大丈夫だと思ったら、エラーを抑えることがあります。
AccessibilityChecks.enable().setThrowExceptionForErrors(false)
Step 6
上の色に対するエラーを修正します。 (背景色を lightGreyから darkGreyに変えます.)
android:background="@color/darkGrey"
Step 7
step1に書かれている目的を達成しましたか?
Espressoが何でどのように作成されたのかは軽く知ることができたと思います。詳しい機能は、documentを見ながら適用しながら身につける必要があります。
もっと見ること:現在の案件ではどのように使われているか
Accessibility Checksをしなくても、
EspressoDslを作ってViewMatchersの基準に合わせてテストをしているようです。
+) HiltAndroidTestを一緒に使っていました。
HiltAndroidTestは別に勉強しなければなりません。
参考
- https://developer.android.com/training/testing/espresso/basics
- https://developer.android.com/guide/topics/ui/accessibility/testing