(Robotium) Barra de acción arriba / botón de inicio haga clic

Utilizo Robotium como la biblioteca para la prueba de Junit para mi aplicación de Android. Escribí algunas pruebas que funcionan bien. Pero cuando intento escribir una prueba para el botón de Inicio / Inicio de ActionBar nativo , falló.

Mi código de prueba es muy simple:

Solo solo = new Solo(getInstrumentation(), getActivity()); ... solo.clickOnActionBarHomeButton(); // I expected it will click the Up/Home button of ActionBar 

Esperaba que el código anterior haga clic en el botón Arriba / Inicio de ActionBar nativo, pero se ha producido un error, no estaba sucediendo nada en la barra de acción. ¿¿Por qué??

PS Estoy usando un dispositivo Android 4.2.1.

Yo uso esta función:

 public void clickOnActionBarHomeButton(Solo solo) { View homeView = solo.getView(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ? android.R.id.home : R.id.home); solo.clickOnView(homeView); } 

Tal vez no es una decisión perfecta, pero funciona.

En nuestro botón de Home aplicación eventualmente llama a NavUtils.navigateUpFromSameTask . Cuando usas

 solo.clickOnActionBarHomeButton(); 

Para hacer clic en el botón Home , no funciona. Sin embargo, he notado que solo.clickOnScreen hace clic en el botón Home confiablemente. Así que utilizamos este método en lugar de solo.clickOnActionBarHomeButton :

 protected void clickOnHome() { solo.clickOnScreen(50, 50); //usually hits Home button } 

Puede hacer clic en el botón Arriba / Inicio (que es el primer elemento ImageButton en la actividad) mediante el siguiente código:

 solo.clickOnImageButton(0); instrumentation.waitForIdleSync(); 
  • qué prueba de unidad, en aplicaciones Android
  • Cómo probar automáticamente onResume el comportamiento llamando onDestroy usando Robotium?
  • Android Espresso prueba el flujo de aplicaciones
  • ¿Dónde puedo obtener una lista de todos los comandos Robotium?
  • (Robotium) Cómo seleccionar un RadioButton en un RadioGroup
  • Atajo de teclado para Ejecutar como -> Android JUnit Test en Eclipse
  • ¿Cómo iniciar el proyecto de Instrumentación mediante programación con Android Intent?
  • Cómo generar informes para Android Automation
  • Robotium. WaitForActivity () devuelve false para la actividad incrustada en TabHostActivity
  • Cómo inyectar el evento de clic con Android UiAutomation.injectInputEvent
  • Manera correcta de abrir NavigationDrawer y seleccionar elementos en Robotium
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.