【Android】CodeLabs:Automated Accessibility Testing using Espressoを勉強しました。

Codelabsと勉強動機?

最近 codelabs を知りました。
ここではステップを区分して、詳しくライブラリなどをどのように適用して使うのか説明されているので、真似しながら勉強すればいいと思いました。

画像2

テストコードの勉強の必要性を感じるので、はじめて勉強するのは、espressoでした。

CodeLabs:Automated Accessibility Testing using Espresso

Step 1, 2

Espresso Testは?

UI testです。 重要機能について画面でよく作動するかテストしてくれます。 今回の課題ではカウント上げ下げ機能があり、この機能に問題がないかテストをします。

画像3

とりあえず、step2にあるgithubをcloneして、ビルドしてUitestがどのように動くのか確認します

画像4

画像5

Step 3 Accessibility Testing Framework for Android (ATF)

:ユーザーがアプリを触りやすいかテストするということだと思います。

> espressoテストを活用してアプリのアクセスを評価できる。

画像6

> ATFをEspressoテストに統合した後、既存のテストを実行するだけでアクセステストが自動的に追加で実行されます。

Accessibility Checks活性化

build.gradle に

androidTestImplementation 'androidx.test.espresso:espresso-accessibility:3.3.0-alpha05'

画像10

書かれている通りにAccessibility Checksを活性化します。そしてテストを起動するとエラーが発生!

画像7

タッチボタンが推奨サイズより小さくてエラーになったようです。 表示されている部分を見るときに、タッチ部分が48x48になっている必要があるようです。
(本当にユーザーのアクセシビリティテストですね!)

Espresso.onView(withId(R.id.add_button))
   .perform(ViewActions.click())

Accessibility ChecksのためにView Actionsが必要(ない場合はチェックしない)

画像8

親切にactivity_main.xmlにどのように修正するかがTODOで書かれています。

android:padding="12dp"
android:contentDescription="@string/subtract_button"

を追加したらエラーが消えました。

Step 5

Accessibility Checksが活性化された場合は、Accessibility Validator機能を活用できます。

画像9

setRunChecksFromRootViewで画面の全体ビュー構造を評価できます。
テスト起動するとエラー発生!

画像11

テキストビューの色対比が明確でないという問題です。

この程度のエラーでは大丈夫だと思ったら、エラーを抑えることがあります。

AccessibilityChecks.enable().setThrowExceptionForErrors(false

Step 6
上の色に対するエラーを修正します。 (背景色を lightGreyから darkGreyに変えます.)

android:background="@color/darkGrey"

Step 7

step1に書かれている目的を達成しましたか?

画像12

Espressoが何でどのように作成されたのかは軽く知ることができたと思います。詳しい機能は、documentを見ながら適用しながら身につける必要があります。

もっと見ること:現在の案件ではどのように使われているか

画像13

Accessibility Checksをしなくても、
EspressoDslを作ってViewMatchersの基準に合わせてテストをしているようです。

画像14

+) HiltAndroidTestを一緒に使っていました。
HiltAndroidTestは別に勉強しなければなりません。


参考

-  https://codelabs.developers.google.com/codelabs/a11y-testing-espresso/index.html?index=..%2F..index#0

https://developer.android.com/training/testing/espresso/basics

https://developer.android.com/guide/topics/ui/accessibility/testing
 ​


この記事が気に入ったらサポートをしてみませんか?