studio solo seleccionar radiobutton ejemplo con codigo calculadora android testing instrumentation screen-orientation uiinterfaceorientation

solo - ¿Cómo forzar un cambio de orientación en una prueba de instrumentación de Android?



radiobutton android (3)

Como escribió AndrewKS, puedes usar

getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); assertTrue(...);

Para solicitar un cambio de orientación. Pero la rotación en sí se ejecuta de forma asíncrona. Para probar realmente el estado después del cambio de orientación, debe esperar un poco después de la solicitud:

getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); Thread.sleep(50); // depends on performance of the testing device/emulator assertTrue(...);

Estoy escribiendo algunas pruebas de aceptación para una aplicación que utiliza la clase ActivityInstrumentationTestCase2. Quiero causar un cambio de orientación desde dentro de la prueba para asegurar que suceda una serie de cosas. Entre estas cosas, se garantiza que se mantenga el estado de la actividad, pero también me gustaría garantizar que se use el diseño adecuado para la orientación.

Sé que simplemente puedo probar onSaveInstanceState / onRestoreInstanceState / onPause / onResume / etc. Métodos para asegurarse de que el estado de la instancia se conserva. Sin embargo, me preguntaba si en realidad hay un mecanismo para causar un evento de cambio de orientación.

¿Esto implicaría inyectar algún tipo de evento de movimiento para engañar al dispositivo / emulador y hacer que piense que se ha girado, o existe un método real para esto provisto por la instrumentación?

Gracias y saludos!


No tienes que usar Robotium para esto en absoluto. De hecho, si ve la fuente de Robotium todo lo que está haciendo cuando llama

solo.setActivityOrientation(Solo.LANDSCAPE);

es

myActivity = this.getActivity(); // In your setUp method() ... myActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);


Usa Robotium para ello. Hay una clase llamada Solo, mediante la cual puede cambiar la orientación simplemente llamando a un método:

solo.setActivityOrientation(Solo.LANDSCAPE);

¡Eso es! Tu orientación se cambiaría. Puede buscar en Google Robotium y obtener su tarro y agregarlo a su proyecto de Prueba. El sitio de Robotium también ofrece un proyecto de prueba de ejemplo en la aplicación de Bloc de notas de Android (que está disponible como un proyecto de ejemplo con el SDK de Android) que muestra su potencia y la facilidad con que se puede usar.