UI テストで FoldingFeature をシミュレートする
Jetpack Window Manager には、モック FoldingFeature
オブジェクトを作成することができるテスト ライブラリが用意されています。 モック折りたたみ機能を作成することで、UI テスト時に折りたたみ型デバイスでのアプリの動作をテストできます。
テスト キットには、複数の市場デバイスの寸法に一致する折りたたみ機能など、さまざまなプロパティを持つ折りたたみ機能をシミュレートできるユーティリティ関数が備わっています。
セットアップ
androidTest ディレクトリに新しいテスト クラス ファイルを作成します。 これは、後でテスト規則とテスト用にコード スニペットに追加する場所です。
最上位の build.gradle ファイルに
mavenCentral()
リポジトリがあることを確認します。allprojects { repositories { google() mavenCentral() } }
次の依存関係をモジュールレベル build.gradle ファイルに追加します (現在のバージョンは、ここに示されているものとは異なる場合があります)。
compileSdkVersion
が API 33 に設定され、targetSdkVersion
がモジュール レベルの build.gradle ファイルで API 32 以降に設定されていることを確認します。android { compileSdkVersion 33 defaultConfig { targetSdkVersion 32 } ... }
UI チェックを実行し、折りたたみ機能をシミュレートできる
TestRule
を作成します。 これを行うには、WindowLayoutInfo
発行元規則と、アクティビティ シナリオまたは Compose テスト規則という 2 つの規則を連結します。Espresso を使ってビューをテストする場合、デバイスでアニメーションを無効にしてください。
テストを記述する方法
テスト キット ライブラリでは、さまざまなプロパティを持つ折りたたみ機能をシミュレートするための複数のオプションが用意されています。 Jetpack Window Manager テスト ドキュメントのガイダンスにより、1 つのテストごとに 1 つの折りたたみ機能のみをシミュレートすることをお勧めします。
折りたたみ機能をシミュレートするテストを作成するには、次の手順に従います。
- 折りたたみ機能をシミュレートする
- UI が予期したとおりに変更されたことをアサートする
次のテスト例では、縦方向の折りたたみ機能がある場合に、2 つのペインを表示するアプリのシンプルな UI テストを示しています。
@Test
fun testVerticalFoldingFeature() {
onView(withText("pane 1")).check(matches(isDisplayed()))
// 1. Simulate a folding feature
publisherRule.simulateVerticalFoldingFeature(activityRule)
// 2. Assert that UI has changed as expected
onView(withText("pane 1")).check(matches(isDisplayed()))
onView(withText("pane 2")).check(matches(isDisplayed()))
}
次のアニメーションは、testVerticalFoldingFeature
が Surface Duo エミュレーター上で実行されているときにどのように見えるかを示しています。
サンプル
折りたたみ型のテストで折りたたみ機能のシミュレーションを使う方法のその他の例については、次のリソースを参照してください。
リソース
インストルメント化されたテストと Jetpack Window Manager テストの詳細については、次のリソースを参照してください。