Espresso-testing-ui-for-multiple-application
提供:Dev Guides
複数のアプリケーションのUI
Androidは、複数のアプリケーションを含むユーザーインターフェイステストをサポートしています。 アプリケーションにメッセージを送信するためにアプリケーションからメッセージングアプリケーションに移動するオプションがあるとします。その後、アプリケーションに戻ります。 このシナリオでは、_UIオートマトラテストフレームワーク_は、アプリケーションのテストに役立ちます。 _UI automator_は、エスプレッソテストフレームワークの優れたコンパニオンと見なすことができます。 _UI automator_を選択する前に、espressoテストフレームワークの_intending()_オプションを利用できます。
セットアップ手順
Androidは、UIオートマトーを個別のプラグインとして提供します。 以下に指定されているように、_app/build.gradle_で設定する必要があります。
dependencies {
...
androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0'
}
テストケース作成のワークフロー
_UI Automator_ベースのテストケースの記述方法を理解しましょう。
- _getInstance()_メソッドを呼び出して_Instrumentation_オブジェクトを渡すことにより、_UiDevice_オブジェクトを取得します。
myDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
myDevice.pressHome();
- _findObject()_メソッドを使用して_UiObject_オブジェクトを取得します。 このメソッドを使用する前に、_uiautomatorviewer_アプリケーションを開いて、ターゲットアプリケーションのUIコンポーネントを検査できます。ターゲットアプリケーションを理解すると、より良いテストケースを作成できるためです。
UiObject button = myDevice.findObject(new UiSelector()
.text("Run")
.className("android.widget.Button"));
- _UiObject’s_メソッドを呼び出して、ユーザーインタラクションをシミュレートします。 たとえば、_setText()_はテキストフィールドを編集し、_click()_はボタンのクリックイベントを発生させます。
if(button.exists() && button.isEnabled()) {
button.click();
}
- 最後に、UIが期待される状態を反映しているかどうかを確認します。