795 votes

Les meilleures pratiques pour les tests unitaires des applications Android

J'aimerais unité de tester mon application Android, mais j'ai trouvé que le test driven development en Android est loin d'être négligeable à l'heure actuelle.

Des conseils, des astuces, des histoires de guerre pour la construction de la lumière du poids et de préférence rapide à l'exécution de tests?

222voto

Renas Points 1523

Vous devriez essayer Robotium! Aller à Robotium.org et téléchargez l'exemple de projet de test. Robotium est vraiment facile à utiliser qui fait que tester des applications android facile et rapide. Je l'ai créé pour faire des essais de l'avancée des applications android possible avec un minimum d'effort. Il est utilisé en conjonction avec ActivityInstrumentationTestCase2.

197voto

Xian Points 603

Aussi vaut le détour n'est Robolectric, une approche alternative pour tester des applications Android.

Au lieu de déploiement de votre application et les tests à l'émulateur Android (qui peut être très lent), Robolectric exécute vos tests directement dans votre ordinateur JVM, la réduction de test type des délais de quelques minutes à quelques secondes.

Robolectric vous permet de tester la plupart des Android fonctionnalité, y compris les mises en page et de l'interface graphique du comportement, des services et des réseaux de code. Il offre beaucoup plus de flexibilité que Google est un framework de test dans le test Android de fonctionnalités, telles que les widgets et des services.

55voto

paulovic Points 98

J'ai travaillé avec Android Unitaires et tests Fonctionnels à l'aide de l'Instrumentation Cadre. Sa documentation est maintenant plus claire que par le passé. Ces liens peuvent vous guider pour commencer à tester:

37voto

En regardant ApiDemos exemple d'application, j'ai trouvé ActivityUnitTestCase et ActivityInstrumentationTestCase classes.

Semble que ce sont les classes utilitaires pour tester android programmes.

Voici les liens pour la référence:
http://developer.android.com/reference/android/test/ActivityInstrumentationTestCase.html
et
http://developer.android.com/reference/android/test/ActivityUnitTestCase.html

Aussi android.jar comprend un sous-ensemble de test JUnit cadre pour un bon vieux test de l'unité. Jetez un oeil à ApiDemos exemple pour l'apprentissage de l'écriture et de l'exécuter.

Espérons que cette aide!

28voto

Peter Pascale Points 423

Trois projets ne sont pas nécessaires (par James réponse ci-dessus). Vous pouvez obtenir des POJO junit 4 tests à exécuter dans l'Android projet de test sans avoir l'émulateur en cours d'exécution ou de l'appareil connecté. Je pense que la meilleure pratique est de deux projets: l'un pour la source, l'un pour les tests, et dans les tests, attendez-vous à avoir des tests qui sont des POJO (pas android références/émulation nécessaire) et des tests qui nécessitent d'émulation.

Mais un hic (et corrigé)... Quand j'ai utilisé l'Eclipse Android Plugin pour "Créer un Nouveau Androïde Projet de Test", Eclipse ne pas exécuter le test unitaire avec junit test runner, il ne fonctionnera qu'avec l'Android de test runner sur l'émulateur ou le périphérique connecté. Même après, j'ai créé un nouveau test JUnit 4 et eclipse ajouté Junit 4 bocal pour le projet.

La solution: Aller à la Run > Run Configurations... Sélectionnez votre cas de test Junit exécuter config - celui qui a échoué. À gauche de l'Appliquer sera sans doute dire "à l'Aide de Eclipse, JUnit Test Launcher - Sélectionnez autres...". Même si cela semble correct, il n'est pas. Cliquez sur Sélectionner d'autres... et choisissez Android de Test JUnit Lanceur. Cliquez sur Exécuter et cela devrait fonctionner. Si cela ne fonctionne pas, cliquez droit sur votre cas de test et a choisi Exécuter en tant Que... > JUnit Test. Merci à Dan Syrstad pour l'astuce.

Je crois que la première config devrait être Android de Test JUnit, mais que, lorsque vous exécutez, vous pouvez sélectionner le Test JUnit config pour ne pas nécessiter d'émulation.

Et assurez-vous de connecter votre appareil Android tests unitaires - son de MANIÈRE plus rapide que l'émulateur - pas de temps de démarrage. Très facile à configurer - voir les instructions ici:

http://developer.android.com/guide/developing/device.html

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