UI para múltiples aplicaciones

Android admite pruebas de interfaz de usuario que involucran más de una aplicación. Consideremos que nuestra aplicación tiene una opción para pasar de nuestra aplicación a la aplicación de mensajería para enviar un mensaje y luego volver a nuestra aplicación. En este escenario, el marco de prueba del automatizador de UI nos ayuda a probar la aplicación. El automatizador de interfaz de usuario puede considerarse un buen compañero para el marco de prueba de espresso. Podemos aprovechar la opción intending () en el marco de prueba de espresso antes de optar por el automatizador de UI .

Instrucción de configuración

Android proporciona un automatizador de IU como un complemento independiente. Debe configurarse en la aplicación / build.gradle como se especifica a continuación,

dependencies {
   ...
   androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0'
}

Flujo de trabajo para escribir un caso de prueba

Entendamos cómo escribir un caso de prueba basado en UI Automator ,

  • Obtenga el objeto UiDevice llamando al método getInstance () y pasando el objeto Instrumentation .

myDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
myDevice.pressHome();
  • Obtenga el objeto UiObject usando el método findObject () . Antes de usar este método, podemos abrir la aplicación uiautomatorviewer para inspeccionar los componentes de la interfaz de usuario de la aplicación de destino, ya que comprender la aplicación de destino nos permite escribir mejores casos de prueba.

UiObject button = myDevice.findObject(new UiSelector()
   .text("Run")
   .className("android.widget.Button"));
  • Simule la interacción del usuario llamando al método de UiObject . Por ejemplo, setText () para editar un campo de texto y haga clic en () para activar un evento de clic de un botón.

if(button.exists() && button.isEnabled()) {
   button.click();
}
  • Finalmente, verificamos si la interfaz de usuario refleja el estado esperado.