Session

Robolectricの限界を理解してUIテストを高速に実行しよう

Espressoを使ったUIテストは、ユニットテストでは手の届かない動作確認にとても役立ちます。
そのような役立つ面がある一方で、UIテストには実行時間が長いという問題が付いてまわります。
たとえば、実行時間の長さ故に、Pull Requestの度にUIテストを実行するのは非現実的です。

そのような悩みを解決するために登場したのが、GoogleのProject Nitrogenの一環として実装が進んでいるRobolectric 4です。
Robolectric 4が採用しているアプローチは、Espressoを使ったUIテストを高速なローカルJVM上で(Local Testとして)実行するというものです。

ところが、いざUIテストをLocal Testとして動かそうとすると、次のようなトラブルに直面します。

・サンプルレベルのUIテストコードは動くのに、いざ実プロダクトのテストを動かそうとすると動かない
・エラーメッセージを見ても何が問題なのか分からない

日々忙しい中でこれらのトラブルを自力で解決するのは大変ですが、予め動作する範囲が分かっていたらどうでしょうか?
動作する範囲内でUIテストを書ければ、Robolectricのトラブルに巻き込まれなくなります。
日々のPull Requestの度にUIテストを実行することも夢ではありません!

本セッションでは、Robolectricで動作するUIテストの範囲を明らかにすべく、以下のようなトピックを紹介します。

・EspressoのUIテストをRobolectricで動かすための準備
・Android Jetpack Componentsのうち、Robolectricで動く機能、動かない機能
・Espresso APIのうち、Robolectricで動く機能、動かない機能
・Robolectricで画面更新を待ち合わせる方法のベストプラクティス
・Robolectricで動かしたいオススメUIテスト

Sumio Toyama

テスト自動化が好きなAndroidエンジニア

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top