Comment puis-je l'unité de test Android Activité qui agit sur l'Accéléromètre?
Je commence avec une Activité en dehors de cette ShakeActivity et je veux écrire des tests unitaires pour. J'ai écrit quelques petits tests unitaires pour Android activités avant, mais je ne suis pas sûr où commencer ici. Je veux nourrir l'accéléromètre certaines valeurs différentes et de tester la façon dont l'activité répond. Pour l'instant je vais garder ça simple et juste de la mise à jour d'un private int compteur de variable et d'un TextView quand un "shake" l'événement se produit.
Donc ma question en grande partie se résume à ceci:
Comment puis-je envoyer de fausses données de l'accéléromètre à partir d'une unité de test?
OriginalL'auteur Corey Sunwold | 2010-05-10
Vous devez vous connecter pour publier un commentaire.
Ma solution à ce terminé vers le haut de façon plus simple que je le pensais. Je ne suis pas vraiment tester l'accéléromètre tant que je suis en train de tester l'application en réponse à un événement déclenché par l'accéléromètre, et j'ai juste besoin de test en conséquence. Ma classe implémente SensorListener et j'ai voulu tester ce qui se passe onSensorChanged. La clé est alors de se nourrir dans certaines valeurs et vérifier mon Activité de l'état. Exemple:
OriginalL'auteur Corey Sunwold
Autant que je sache, vous ne pouvez pas.
Votre shaker logique d'accepter un enfichables à la source de données. Dans le test de l'unité, la fourniture d'une maquette. Dans la production, la fourniture d'un wrapper autour de l'accéléromètre.
Ou, ne vous inquiétez pas sur les tests unitaires dans le shaker lui-même, mais plutôt s'inquiéter de l'unité à tester des choses que d'utiliser le shaker, et de créer une maquette au shaker.
Est-ce répondre encore à jour? Ou a quelque chose de nouveau?
Il me semble que l'Android Outils de l'équipe a été de travailler sur une façon d'utiliser un appareil Android comme capteur d'entrée pour un émulateur, mais je ne sais pas où en est. Sinon, je ne suis pas au courant de toute façon de fournir de faux entrée du capteur.
N'est-il pas possible d'envoyer
sensor
des commandes via une connexion telnet? stackoverflow.com/questions/3921467/...OriginalL'auteur CommonsWare
Bien, vous pouvez écrire une interface.
Le écrire un
AndroidAccelerometerReader
etFakeAccelerometerReader
. Votre code d'utilisationIAccelerometerReader
mais vous pouvez le changer dans l'Android ou Faux lecteurs.OriginalL'auteur Ray
Pas besoin de tester le système d'exploitation de l'accéléromètre, il suffit de tester votre logique propre, qui répond à l'OS - en d'autres termes, votre
SensorListener
. MalheureusementSensorEvent
est privé et je ne pouvais pas appelerSensorListener.onSensorChanged(SensorEvent event)
directement, donc a la première sous-classe SensorListener avec ma propre classe, et d'appeler mon propre méthode directement à partir de l'tests:Alors je peux appeler
onSensorUpdated
directement à partir de mon code de test qui simule l'accéléromètre de tir.OriginalL'auteur Marc Attinasi
vous pouvez tester ci-dessus morceau de code par la suite de façon
OriginalL'auteur Sanjoy Saha