動作 UI テストは、UI 階層を分析して UI 要素のプロパティにアサーションを適用するテストです。
Jetpack フレームワーク
Jetpack には、UI テストを作成するための API を提供するさまざまなフレームワークが含まれています。
- Espresso テスト フレームワーク(Android 4.0.1、API レベル 14 以降)には、単一のターゲット アプリ内の ビューでのユーザー インタラクションをシミュレートする UI テストを作成するための API が用意されています。Espresso を使用する主な利点は、テスト アクションとテスト対象アプリの UI が自動的に同期されることです。Espresso はメインスレッドがアイドル状態になったタイミングを検出するので、適切な時点でテストコマンドを実行できます。これにより、テストの信頼性が向上します。
- Jetpack Compose(Android 5.0、API レベル 21 以降)には、Compose の画面とコンポーネントを起動して操作するためのテスト API のセットが用意されています。Compose 要素とのインタラクションはテストと同期され、時間、アニメーション、再コンポーズを完全に制御できます。
- UI Automator(Android 4.3、API レベル 18 以上)は、システムアプリとインストール済みアプリにまたがるアプリ間の UI 機能テストに適した UI テスト フレームワークです。UI Automator API を使用すると、テスト端末上で設定メニューやアプリ ランチャーを開くなどの操作が可能になります。
- Robolectric(Android 4.1、API レベル 16 以降)を使用すると、エミュレータやデバイスではなく、通常の JVM を使用して、ワークステーションや継続的インテグレーション環境で実行されるローカルテストを作成できます。Espresso または Compose のテスト API を使用して UI コンポーネントを操作できます。
参考情報
UI テストの作成について詳しくは、以下のリソースをご覧ください。
ドキュメント
- インストルメンテーション テストを作成する
- Espresso
- Compose のテスト