Comment faire pour exécuter un simple JUnit4 test dans Android Studio 1.1?
J'ai un projet Android qui affiche "Hello World". Il a été créé à partir de la "Vierge de l'Activité" modèle à partir d'Android Studio.
J'ai ensuite ajouter/créer une nouvelle classe java dans mon package d'application (le même package que mon activité). J'appelle ça de la Forme et ajouter un simple constructeur
public class Shape {
public Shape(int i){
if (i==0){
throw new IllegalArgumentException("Cant have 0");
}
}
}
Grande. Maintenant, j'ai une classe qui n'est pas en contact avec Android, et je veux unité de test. Que dois-je faire ensuite?
C'est là ma question s'arrête. Ci-dessous je vais aller par ce que j'ai essayé.
Veuillez noter que vraiment, je n'ai jamais testé avant dans Android ou Java. Excusez-moi pour le "rookie" erreurs.
- Tandis que dans le Shape.java je vais à "Naviguer" > "Test"
- Sur la touche entrée pour sélectionner "Créer un nouveau Test"
- Obtenir ce menu contextuel, et sélectionnez JUNIT4.
- Puis j'appuie sur le bouton de correction pour corriger la bibliothèque n'est pas trouvé
- - Je obtenir cette fenêtre popup
- Je ne suis pas vraiment sûr de ce que pour sélectionner, donc je sélectionne le répertoire par défaut/en surbrillance.
-
J'écris mon test
package com.eghdk.getjunit4towork; import org.junit.Test; import static org.junit.Assert.*; public class ShapeTest { @Test(expected = IllegalArgumentException.class) public void testShapeWithInvalidArg() { new Shape(0); } }
-
À ce point, je ne suis pas vraiment sûr de savoir comment exécuter mes tests, mais essayez de faire ceci:
-
J'obtiens ces erreurs lors de l'exécution de
Erreur:(3, 17) Gradle: erreur: package org.junit n'existe pas
Erreur:(5, 24) Gradle: erreur: package org.junit n'existe pas
Erreur:(8, 6) Gradle: erreur: impossible de trouver le symbole de la classe de Test
Vous devez vous connecter pour publier un commentaire.
Depuis Android Studio 1.1, il y a (expérimental) unité de test à l'appui. Un couple de citations de la page:
Il est important de savoir qu'il existe deux types de test:
androidTest
et la plainetest
.androidTest
est principalement pour les tests que vous effectuez sur un émulateur ou un périphérique, comme l'instrumentation des essais. À partir de la ligne de commande, vous utilisez./gradlew connectedCheck
à l'exécution de ces.test
est pour les tests que vous ne souhaitez pas exécuter sur un appareil, tels que le test de l'unité que vous avez écrit. Vous exécutez./gradlew test
à l'exécution de ces tests.Indiqué dans le devis, vous basculez entre
androidTest
ettest
dans Android Studio par le test de l'artefact.Naturellement, il est préférable de ne pas exécuter des tests sur un périphérique ou un émulateur, car cela accélère le processus de test beaucoup. Avec la nouvelle unité expérimentale de test à l'appui, vous obtenez l'accès à écrasa l'API Android sans l'aide d'un appareil. Cela vous permet de vous déplacer plus de tests à partir de
androidTest
àtest
.InstrumentationTest
etUnitTest
je.eandroidTest
&test
. Grâce nhaarman 🙂android.util.Log
cependant ne fonctionnera pas puisqu'il n'est pas Android de l'environnement lorsqu'il vous suffit d'exécuter les tests unitaires. Pour ce faire, vous pouvez utiliserSystem.out.print*
famille de méthodes.Pour android studio 1.2 ou plus, - je inclure cette réponse puisque c'est l'un des premiers du classement sur google et c'est un excellent et TRÈS facile à suivre tutoriel sur la façon de définir les tests unitaires avec Android Studio, c'est le lien: https://io2015codelabs.appspot.com/codelabs/android-studio-testing#1
Après perdre 2 heures à essayer de lancer le test je l'ai enfin fait avec le lien ci-dessus, espérons que cela est utile pour vous comme pour moi.
Aujourd'hui, Android Studio (actuel ver. 1.4) a la pleine Unité de test de charge, sans aucune solution de contournement. Comme suggéré dans l'généré automatiquement ExampleUnitTest:
To work on unit tests, switch the Test Artifact in the Build Variants view.
Aller dans les paramètres, puis construire des outils de gradle et puis expérimentales. Dans expérimentale désactivez l'option activer le test de tous les artefacts. C'est ce jeu sur