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が期待される状態を反映しているかどうかを確認します。