¿Cómo puedo rotar el emulador de Android desde el código de prueba?

Quiero probar el comportamiento diferente de mi aplicación en modo horizontal y vertical. Tengo una subclase de android.test.InstrumentationTestCase que hace un buen trabajo de probar el comportamiento de mi aplicación en el modo retrato, pero si (manualmente) poner el emulador en el paisaje antes de ejecutar la prueba, falla. Eso está bien – el comportamiento en el paisaje no debe pasar las pruebas de retrato – y sé cómo comprobar la orientación de mi código de prueba, para poder evitar los fallos de la prueba – pero lo que quiero hacer es (de código de prueba) poner el Emulador en el estado correcto para cada una de mis pruebas. ¿Cómo puedo hacer eso?

Lo que terminé haciendo fue extraer el bit de código en mi actividad que obtuvo la orientación en una interfaz OrientationGetter y dar a la actividad un DefaultOrientationGetter que devolvió la orientación del dispositivo (o emulador). Ahora mi prueba puede inyectar un stub mudo OrientationGetter que simplemente devuelve retrato o paisaje según sea necesario, y puedo probar el código de mi actividad sin controlar realmente el estado del emulador. Funciona bien.

No veo nada de uso obvio como un comando de consola de emulador. Desde el host, tal vez podría inyectar el F11 / F12 en el emulador usando Xtest o algún código win32 (y posiblemente determinar el estado actual leyendo la geometría de la ventana). Si la lógica de la prueba está funcionando en el emulador usted podría tcp hacia fuera a algo que escucha en un puerto en el anfitrión que aparecería como 10.0.2.2 del emulador y pedirle que inyecte esa llave. Pero esto parece poco elegante.

Reconstruir el emulador para agregar un comando de consola sería un poco mejor.

Puede hacerlo pulsando la siguiente secuencia de teclas Ctrl + F12

  • PowerMock en el proyecto Android
  • Prueba de unidad Actividad.startService () llamada?
  • Cómo ejecutar todas las pruebas (unitarias e instrumentadas) con un solo clic en Android Studio
  • Prueba de unidad de ciclo de vida de actividad
  • Prueba de unidad de Android: ActivityMonitor waitForActivityWithTimeout devuelve NULL, getActivity nunca devuelve, error de permiso de INJECT_EVENTS
  • Android inmediatamente creado Los elementos de par son nulos
  • Prueba de unidad en la función de extensión de Kotlin en las clases de SDK de Android
  • Ejecutar pruebas de unidad en Guardar con Android Studio
  • Cómo probar esta línea de LayoutInflater.from () en android
  • Granja de dispositivos AWS con Espresso y JUnit4
  • Cómo probar menú en Android con Robolectric
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.