Question

J'écris des tests d'acceptation pour une application utilisant la classe ActivityInstrumentationTestCase2. Je veux provoquer un changement d'orientation à partir du test pour vous assurer qu'un certain nombre de choses se passent. Parmi ces choses font en sorte que l'état d'activité est préservée, mais aussi je voudrais faire en sorte que la mise en page appropriée pour l'orientation est utilisé.

Je sais que je peux simplement tester le onSaveInstanceState / onRestoreInstanceState / OnPause / onResume / etc. méthodes pour faire état de l'instance est sûr préservée. Cependant, je me demandais s'il est en fait un mécanisme pour provoquer un événement de changement d'orientation?

que cela impliquerait une sorte d'injection événement de mouvement pour tromper l'appareil / émulateur en pensant qu'il a été mis en rotation, ou est-il une méthode réelle de cette condition par l'instrumentation?

Merci et Cheers!

Était-ce utile?

La solution

Vous n'avez pas réellement d'utiliser Robotium pour cela du tout. En fait, si vous affichez la source de Robotium tout ce qu'il fait lorsque vous appelez

solo.setActivityOrientation(Solo.LANDSCAPE);

est

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

...

myActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

Autres conseils

Comme AndrewKS écrit vous pouvez utiliser

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

pour demander un changement d'orientation. Mais la rotation lui-même est exécuté asynchrone. Pour vraiment tester l'état après le changement d'orientation vous devez attendre un peu de temps après la demande:

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

Utilisez Robotium pour elle. Il y a une classe appelée Solo, l'aide que vous pouvez changer d'orientation en appelant simplement une méthode:

solo.setActivityOrientation(Solo.LANDSCAPE);

Ca y est! Votre orientation serait se changer. Vous pouvez google Robotium et obtenir son pot et l'ajouter à votre projet de test. Le site Robotium donne également un projet de test par exemple sur l'App Bloc-notes Android (qui est disponible comme un exemple de projet avec Android SDK) qui montre comment il est puissant et la facilité avec laquelle il pourrait être utilisé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top