Brightecでは、コードによる広範囲のUIテストを実現することを目標としています。Android向けに使用しているEspressoは、開発者の要求を言語として可視化する手法を提供してくれます。大部分は比較的簡単ですが、一部のUIでは、詳細までテストを行うのが難しい場合があります。
そこで今回は、Android開発者をサポートするためEspressoを使ったコードスニペットを紹介します。
Espressoスニペット
Espressoフレームワークは非常に強力ですが、その分複雑です。Android Studioのテストレコーダーも進歩しているとは言え、まだまだ手動でテストを編集する必要があります。つまり、その分スニペットが大きく活躍してくれるというわけです。
注意として、テストの際にはデバイスのアニメーションを無効化してください。
スピナー
スピナーから項目を選択するのは驚くほど簡単です。スピナービュー(ViewInteraction)を呼び出し、クリックを行いonData関数を使用するだけです。
選択のマッチングには様々な手法がありますが、hasToStringが特に便利です。また一度のテストで複数のスピナーを選択でき、onDataはどのスピナーメニューが正しく表示されているかを判別します。
新しいアクティビティの開始
新しいアクティビティが開始されたことを確認するのはテストにおける必須事項です。これはActivityMonitorとwaitForActivityWithTimeout()を作成することで実現できます。あとはam.getHits()が開始したアクティビティの数と一致しているのを確かめるだけです。
どうしてこれが必要になるのでしょう?個人的には、アイドリングリソース内で使用するビューを確認するのに使っています。
アイドリングリソース
テスト中に他の動作を待機する手法として、いくつかのアイドリングリソースを使用しています。もし可能であれば、ぴったりのものをご自身で作成してみてください。
TextViewHasTextIdlingResource.java
ViewVisibilityIdlingResource.java
ViewHasChildrenIdlingResource.java
TextView URL
テキストビューのURLをクリックして開くテストを行うには、次のコードを使用してください。
いかがでしたか?スニペットを利用して、少しでも楽にテストを行いましょう。
※本記事は、Code snippets in Espressoを翻訳・再構成したものです。