35 votes

Puis-je tester les notifications de la barre d'état à l'aide du framework de test d'Android?

J'ai une classe qui envoie une notification de barre d'état dans Android. Je ne trouve pas de moyen de tester si la notification a été envoyée ou non, ce qui rend très difficile l'écriture de tout type de test unitaire utile.

Quelqu'un at-il une solution pour cela?

6voto

Michael Smith Points 447

Peut-être pas la réponse que vous cherchez, mais comme d'habitude, la solution est de:

  • Créer une interface en faisant abstraction de la fonctionnalité de notification.
  • Créer une implémentation par défaut que les délégués à la notification du système API.
  • Lors de l'exécution de tests remplacer (ou décorer) le défaut de mise en œuvre avec un simulacre de mise en œuvre qui prend en charge des tests.

Cela peut être simplifié avec la technologie suivante:

  • L'injection de dépendance des cadres (comme RoboGuice) pour simplifier le choix de la mise en œuvre.
  • Se moquant de la bibliothèque (comme EasyMock) pour automatiser la création de maquette implémentations.

4voto

Lev G. Points 86

Essayez de créer un objet Mock en étendant NotificationManager et remplacez les méthodes notify() . Les fonctions remplacées peuvent être affirmées. Dans votre ou vos cas de test, injectez le Mock à l'activité du sujet et exécutez les tests à l'aide d'Android JUnit Test.

2voto

Ivan Points 21

Robotium ne peut pas interagir avec la barre de notification. Vous êtes limité à une seule application. Consultez la FAQ pour le robotium, il en est fait mention: http://code.google.com/p/robotium/wiki/QuestionsAndAnswers

2voto

wangjiebo Points 126

Test de l'interface utilisateur

C'est ce que tu veux je pense. L'uiautomator.

Fonctionne uniquement sur Android 4.1 ou supérieur. Vous devez peut-être d'abord exécuter l'exemple de code.

Vous pouvez écrire un morceau de code pour effectuer l'action de la barre d'état déroulante, puis faire vos choses. Il s'agit uniquement de tests d'interface utilisateur. Vous ne pouvez pas tester vos données avec uiautomator.

J'espère que cela vous aidera.

1voto

Pawan M Points 4396

Résolu un type de situation similaire en stockant les détails de la notification dans le magasin de données avant d'envoyer et de marquer comme reconnu chaque fois que l'utilisateur entre dans l'application via la barre de notification. Comme le robotium est limité aux limites des applications, il ne peut pas accéder aux données du système et a donc testé le comportement à l'aide d'un test unitaire basé sur junit / jmockit.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X