¿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?
- Crear proyecto de prueba de android en intellij idea 13 community edition
- Android Gradle Conflicto de dependencia con la versión interna proporcionada por Android
- Android Test Case - ¿cómo ver la salida?
- Robolectric: NotFoundException: recurso desconocido 0 en org.robolectric.shadows.ShadowAssetManager.getAndResolve (ShadowAssetManager.java:258)
- No se puede burlar la clase final de Kotlin usando Mockito 2
- Android Studio: No se puede escribir en Preferencias compartidas en la prueba instrumentada
- Problemas al configurar el entorno de prueba de App Engine
- Prueba de clases sin actividad en Android
- Prueba de unidad de Android con Retrofit y Mockito
- No se pueden construir pruebas con Gradle (decard-gradle)
- Preguntas sobre la prueba de unidad Android con gradle o estudio de android
- AsyncTask onPostExecute () no se llama en caso de prueba de unidad
- Prueba de la unidad para Android: Cómo burlar el contexto de Android
Si desea girar la Actividad, desee utilizar esto: http://developer.android.com/reference/android/app/Activity.html#setRequestedOrientation(int )
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
- ¿Cómo cambiar o cambiar entre las pestañas en la distribución gráfica sdk de Android?
- ¿Cómo puede Android escribir un valor en HTML5 localstorage?