Je viens de télécharger Android Studio basé sur Intellij Idea.
Comment créerait-on des tests?
Je remarque qu'il existe une option pour créer un module de test, mais cela ne semble rien faire, créez uniquement un nouveau projet avec src
J'ai également essayé d'appuyer sur la touche de raccourci CTRL + AlT + T qui permet de créer des tests unitaires sur une classe existante mais il semble vouloir la placer dans le projet en cours. Bien sûr, cela n'aide pas avec TDD
Quelqu'un at-il une expérience ici?
Réponses:
Cette réponse s'adresse aux personnes qui commencent tout juste à tester Android. Je vais fournir deux exemples simples pour vous aider à voir comment les tests fonctionnent. Si vous suivez pendant les 10 prochaines minutes, vous serez prêt à commencer à ajouter vos tests à votre propre application. Je pense que vous serez surpris de voir à quel point c'est facile. J'étais certainement.
Introduction aux tests Android
Il existe deux types de tests différents que vous ferez.
Context
est un exemple.)Créez un nouveau projet et vous verrez les dossiers par défaut suivants.
Tout est déjà là et n'attend que vous pour créer vos tests. Tout est déjà configuré!
Comment créer des tests unitaires locaux
Ouvrez le
ExampleUnitTest
fichier montré dans l'image ci-dessus. Ça devrait ressembler a quelque chose comme ca:Appuyez sur la double flèche verte pour exécuter tous les tests ou sur la flèche verte unique pour n'en exécuter qu'un. (Dans ce cas, il n'y a qu'un seul test, donc ils font tous les deux la même chose.)
Cela devrait passer (tant qu'il
2 + 2
est encore4
quand vous lisez cette réponse). Félicitations, vous venez de faire votre premier test!Faire votre propre test
Écrivons notre propre test. Ajoutez d'abord cette classe à votre projet d'application principal afin que nous ayons quelque chose à tester:
Maintenant, changez la
addition_isCorrect()
méthode dans la classe de test pour qu'elle ressemble au code suivant (ou ajoutez simplement une autre méthode avec un nom différent):Exécutez-le à nouveau et vous devriez le voir passer. Félicitations, vous venez de créer votre propre premier test! (Eh bien, je suppose que techniquement c'était à moi, mais bon, assez proche. Ce qui est à moi est à vous.)
Comment créer des tests instrumentés
Ouvrez le
ExampleInstrumentedTest
fichier. Ça devrait ressembler a quelque chose comme ca:Appuyez à nouveau sur l'un de ces boutons verts.
Tant que vous avez un vrai appareil connecté ou que l'émulateur est configuré, il aurait dû le démarrer et exécuter votre application. Félicitations, vous venez de faire votre premier test instrumenté!
Faire votre propre test
Les tests instrumentés utilisent Espresso pour exécuter les tests. C'est un peu comme votre propre petit utilisateur de robot que vous pouvez faire tester votre application. Vous pouvez lui dire de faire quelque chose comme appuyer sur un bouton ou lire les propriétés d'un TextView.
Vous pouvez écrire les instructions pour faire le test à la main, mais puisque nous ne faisons que commencer, utilisons la fonction d'enregistrement automatique . C'est super simple.
Ajoutez d'abord un bouton à votre interface utilisateur pour que nous ayons quelque chose avec quoi travailler. J'ai fait ça:
Appuyez ensuite sur Exécuter> Enregistrer le test expresso dans le menu.
Après avoir démarré, cliquez sur le bouton dans l'émulateur, puis pour terminer, choisissez OK dans la boîte de dialogue Enregistrer. Il devrait générer automatiquement le code de test suivant.
Génial! Vous venez de créer votre premier test instrumenté! C'était super facile. Vous devriez probablement ajouter une assertion pour en faire un vrai test, mais c'est également assez facile à faire avec l'enregistreur. Regardez cette vidéo pour aller un peu plus loin.
Une étude plus approfondie
Je regardais d'abord les vidéos, puis je lisais la documentation. Tout cela est très utile. Le dernier lien est vers une série d'articles qui couvrent des points importants à prendre en compte lors du choix des éléments à tester.
la source
/app
, cependant si je lance à partir de la ligne de commande Gradle (ou CI), c'est _root . (Idéalement, j'aimerais accéder à desassets
dossiers spécifiques lorsqu'ils sont exécutés dans les deux sens).test/resources
et y placer des fichiers, par exempletest.txt
et y accéder avecgetClass().getClassLoader().getResource("test.txt")
. J'ai décidé que l'accès direct aux actifs de l'APK était probablement une mauvaise idée, je vais donc y remédier en copiant les fichiers à tester dans une étape de construction ou dans un processus de mise à jour externe. Il reste des questions sur les différentes versions de Gradle, mais je n'ai pas encore fait face à cela.Edit: Depuis la version 0.1.8, cela est désormais pris en charge dans l'EDI . Veuillez suivre les instructions ci-dessous, au lieu d'utiliser les instructions ci-dessous.
En suivant le guide de l'utilisateur du plug-in Android Gradle, j'ai pu faire fonctionner des tests sur la ligne de commande en effectuant les étapes suivantes sur un projet nouvellement créé (j'ai utilisé le package par défaut 'com.example.myapplication'):
Cela a exécuté mes tests et placé les résultats des tests dans MyApplicationProject / MyApplication / build / reports / instrumentTests / connected. Je suis nouveau dans le test des applications Android, mais cela semble fonctionner correctement.
Depuis l'EDI, il est possible d'essayer d'exécuter la même classe de test. Vous devrez
Cependant, cela échoue (le chemin de classe utilisé lors de l'exécution des tests ne contient pas le répertoire de sortie du test). Cependant, je ne suis pas sûr que cela fonctionnerait malgré tout, car je crois comprendre qu'un testeur de test spécifique à Android est nécessaire.
la source
Je suggérerais d'utiliser le fichier gradle.build .
Ajoutez un répertoire src / androidTest / java pour les tests (comme Chris commence à l'expliquer)
Ouvrez le fichier gradle.build et spécifiez-y:
Appuyez sur "Synchroniser le projet avec le fichier Gradle" (dans le panneau supérieur). Vous devriez voir maintenant un dossier "java" (à l'intérieur de "androidTest") est de couleur verte.
Vous pouvez maintenant y créer des fichiers de test et les exécuter.
la source
Je pense que cet article de Rex St John est très utile pour les tests unitaires avec Android Studio.
(source: rexstjohn.com )
la source
Android Studio v.2.3.3
Mettez en surbrillance le contexte de code que vous souhaitez tester et utilisez le raccourci clavier:
CTRL
+SHIFT
+T
Utilisez l'interface de dialogue pour terminer votre configuration.
Le cadre de test est censé refléter la disposition de votre package de projet pour de meilleurs résultats, mais vous pouvez créer manuellement des tests personnalisés, à condition que vous disposiez du répertoire et des paramètres de construction appropriés.
la source
Pour l'instant (studio 0.61), il suffit de maintenir une structure de projet appropriée. Pas besoin de créer un projet de test séparé comme dans eclipse (voir ci-dessous).
la source
Android Studio ne cesse d'évoluer, de sorte que les réponses ci-dessus ne seront finalement plus applicables. Pour la version actuelle d'Android Studio 1.2.1.1, il existe un joli tutoriel sur les tests sur:
http://evgenii.com/blog/testing-activity-in-android-studio-tutorial-part-1/
la source
L'un des changements majeurs semble être qu'avec Android Studio, l'application de test est intégrée au projet d'application.
Je ne sais pas si cela aide votre problème spécifique, mais j'ai trouvé un guide sur la réalisation de tests avec un projet Gradle. Guide de l'utilisateur Android Gradle
la source
Le moyen le plus simple que j'ai trouvé est le simplifié dans mon article de blog suivant :
Bonne chance pour rendre votre code plus lisible, maintenable et bien testé!
la source
Android Studio a été une sorte de cible mobile, étant d'abord un aperçu du développeur et maintenant en version bêta. Le chemin des classes de test dans le projet a changé avec le temps, mais quelle que soit la version d'AS que vous utilisez, le chemin est déclaré dans votre fichier .iml. Actuellement, avec la version 0.8.3, vous trouverez ce qui suit dans le fichier iml interne:
Le fichier .iml vous indique où placer vos classes de test.
la source
Depuis Android Studio 1.1, nous avons un support officiel (expérimental) pour l'écriture de tests unitaires (Roboelectric fonctionne également).
Source: https://sites.google.com/a/android.com/tools/tech-docs/unit-testing-support
la source
Ajouter ci-dessous lib dans le fichier gradle
Créez la classe HomeActivityTest dans le répertoire androidTest et avant d'exécuter le test, ajoutez la chaîne flurry_api_key et sender_id dans le fichier de ressources de chaîne et modifiez la valeur en cas d'échec et de réussite.
la source