Aller au contenu

Bienvenue sur le forum de FrAndroid !

Nous sommes une communauté dédiée à Android et tout ce qui gravite autour. Si vous cherchez à tirer le meilleur parti de votre appareil, à le personnaliser, à ajouter des fonctions ou simplement à avoir des réponses à vos questions.

Rejoignez-nous. C'est gratuit!

Connexion Inscription

Photo

Traduc de tuto : Les tests unitaires


  • Merci de vous connecter pour répondre
3 réponses à ce sujet

#1
MzelleNeskimo

MzelleNeskimo

    Membre

  • Membre
  • 12 messages
0
  • LieuToulouse
J'ai eu comme l'impression qu'ici, les tests unitaires, c'était un peu une légende, les vieux racontent aux enfants que ça existe pour leur faire peur la nuit. Du coup comme j'ai quand même passé pas mal de temps à n'y rien comprendre et que j'ai fini par en faire quelque chose (toujours pas sur les alert dialog, si quelqu'un à la solution, n'oubliez pas mon autre sujet :D ), du coup je vous propose une petite traduction du tuto officiel de base. C'est sans prétention, je suis pas une traductrice, ni une rédactrice de tuto ni rien du tout, c'est à prendre ou à passer.

Hello, Testing

Android offre un puissant mais simple framework pour tester les applications. Simple… Oui mais pas toujours. Le peu de documentation à ce sujet peut rendre l’initiation un peu compliquée. Nous vous proposons donc cette traduction du tutoriel basique proposé par les développeurs, disponible à l’adresse : http://developer.and...roid_test.html.
Ce tutorial va vous introduire les bases des tests unitaires et vous aider à démarrer rapidement. Avant de le commencer, vous devez avoir suivi un précédent, Hello World (http://developer.and...ello-world.html) en somme avoir une application toute simple. Il va vous expliquer comment initier les tests, les construire et les faire marcher sur l’application.
Prérequis
Ce tutorial et son code découle du tutorial Hello World. Si vous ne l’avez pas déjà suivi, vous devez le suivre. Vous devez utiliser éclipse et les outils pour la programmation Android et avoir une plateforme SDK de version 1.5 (API niveau 3) ou supérieure.
Créer le projet de test
Dans le tutorial Hello World, vous avez créé une application appelée HelloAndroid. Le test d’une application Android est aussi une application Android, et vous allez le créer via un projet Eclipse.
Pour créer le projet de test, suivez les étapes suivantes :
1. Dans Eclipse, sélectionnez New > Project > Android > Android Test Project.

Image IPB

La boite de dialogue New avec comme choix Android Test Project apparait.

2. Remplissez les champs avec les valeurs suivantes :
o Test Project Name: "HelloAndroidTest"
o Test Target: Selectionnez "An existing Android project", cliquez sur Browse, et selectionnez "HelloAndroid" dans la liste de projets.
o Build Target: Choissisez Android 1.5 ou au-dessus.
o Application name: "HelloAndroidTest"
o Package name: "com.example.helloandroid.test"
La boite de dialogue doit alors ressembler à ceci :

Image IPB

3. Cliquez sur Finish. Le nouveau projet apparait dans le Package Explorer.

Créer les classes de test
Vous avez maintenant un projet de test appelé HelloAndroidTest, et la structure basique d’une application de test, appelée aussi HelloAndroidTest. Cette structure inclus tous les fichiers et répertoires dont vous avez besoin pour écrire et faire tourner l’application de test, excepté pour les classes que contient votre test (les « test case class »).
L’étape suivante est de définir la test case class. Dans ce tutoriel, vous allez définir une test case class qui hérite (extends) d’une d’Android créer pour les Activity. Cette classe contient les définitions de quatre méthodes :
1. HelloAndroidTest: Elle définit le constructeur de la classe. Elle est obligatoire pour faire marcher le framework.
2. setUp(): Elle redéfinit la méthode setUp() de la super classe JUnit. Vous l’utilisez pour initialiser l’environnement avant chaque lancement de test.
3. testPreconditions(): Elle définit un petit test pour s’assurer que l’application a démarré correctement.
4. testText(): Véritable test, elle implémente les mécanismes à tester. Lors du lancement, son code s’exécute dans l’émulateur comme une méthode classique. Elle contient le code pour le test et les éventuelles méthodes à appeler pour le faire.

Ajouter la test case class au projet
Pour ajouter le fichier Java de test au projet, suivez les étapes suivantes :
1. Dans Eclipse, ouvrez le projet HelloAndroidTest project si ce n’est pas déjà fait.

2. Ouvrez l’onglet « src ». Un package vide du nom de com.helloandroid.test doit être présent. Click droit dessus et sélectionnez New > Class:

Image IPB

La boite de dialogue New Java Class dialog s’affiche.

3. Dans la boite de dialogue, remplissez les champs comme voici :
o Name: "HelloAndroidTest". Ce sera le nom de votre classe de test.
o Superclass: "android.test.ActivityInstrumentationTestCase2". La superclasse dont va hériter votre classe de test, paramétré avec l’Activity à tester.
La boite doit alors ressembler à ça :

Image IPB

4. Ne changez rien de plus, cliquez sur Finish.

5. Vous avez maintenant le nouveau fichier, HelloAndroidTest.java dans le projet.

6. Ouvrez HelloAndroidTest.java. Il doit ressembler à ça :

package com.exemple.helloandroid.test;

import android.test.ActivityInstrumentationTestCase2;

public class HelloAndroidTest extends ActivityInstrumentationTestCase2<HelloAndroid> {
}

7. La classe décrite dans le fichier dépend de la classe HelloAndroid qui n’est pas encore importée. Pour le faire ajoutez le lien suivant juste avant les importations déjà implémentées.
import com.helloandroid.HelloAndroid;

Ajouter le constructeur de la test case.
Le constructeur est utilisé par le framework quand vous lancez un test. Il appelle le super constructeur avec comme paramètres les informations sur l’application à tester.
Ajoutez le constructeur ci-dessous juste après la définition de la classe :

public HelloAndroidTest() {
      super("com.exemple.helloandroid", HelloAndroid.class);
    }

Sauvegardez votre fichier HelloAndroidTest.java.

Ajouter une setup method
La méthode setUp() redéfinit celle de JUnit, que le framework appelle en priorité pour chaque méthode de test. Vous devez l’utiliser pour initialiser vos variables et préparer l’environnement de test. Dans cet exemple, setUp() démarre l’application Hello, Android, récupère le texte affiché à l’écran et récupère la chaine de caractères originale depuis le fichier string.xml.
En premier, ajouter ce code juste après le constructeur :

@Override
    protected void setUp() throws Exception {
        super.setUp();
        mActivity = this.getActivity();
        mView = (TextView) mActivity.findViewById(com.exemple.helloandroid.R.id.textview);
        resourceString = mActivity.getString(com.exemple.helloandroid.R.string.hello);
    }

Puis, pour que ce code marche, vous devez également ajouter les variables auquel il fait appel et les bibliothèques qu’il utilise. Pour les variables, ajoutez entre la définition de la classe et le constructeur le code qui suit :

private HelloAndroid mActivity;
    private TextView mView;
    private String resourceString;

Pour la bibliothèque, ajoutez son importation juste après celle de android.test.ActivityInstrumentationTestCase2 :

import android.widget.TextView;

Ajouter des pré-conditions :
Un test de pré-condition vérifie les conditions initiales de lancement de l’application avant d’exécuter les autres tests. Il est similaire à setUp() mais n’est lancé qu’une seule fois (et non avant chaque test).
Ici, nous avons seulement besoin de vérifier si l’application elle-même c’est correctement initialisée et si l’objet TextView existe. Pour ce faire, appelez la méthode héritée assertNotNull() en lui donnant la référence vers le TextView. Le test sera concluant si la référence n’est pas nulle.

public void testPreconditions() {
      assertNotNull(mView);
    }

Ajouter un test unitaire
Maintenant, ajouté un test unitaire simple au reste de la classe de test case. La méthode testText() va appeler à nouveau une méthode héritée, assertEquals() pour vérifier si le texte qui s’affiche à l’écran est bien celui escompté. Vous allez donc comparer le texte contenu dans le TextView, et celui contenu dans la variable référençant le fichier string.xml. Le test sera concluant si elles sont égales.
Pour ajouter ce test, ajoutez le code suivant juste après la méthode testPrecondition() :

public void testText() {
      assertEquals(resourceString,(String)mView.getText());
    }

La classe de test terminée :
Vous avez terminé d’écrire la classe de test. Voici ce à quoi elle doit ressembler :

package com.helloandroid.test;

import com.example.helloandroid.HelloAndroid;
import android.test.ActivityInstrumentationTestCase2;
import android.widget.TextView;

public class HelloAndroidTest extends ActivityInstrumentationTestCase2<HelloAndroid> {
    private HelloAndroid mActivity;  // the activity under test
    private TextView mView;          // the activity's TextView (the only view)
    private String resourceString;

    public HelloAndroidTest() {
      super("com.example.helloandroid", HelloAndroid.class);
    }
    @Override
    protected void setUp() throws Exception {
        super.setUp();
        mActivity = this.getActivity();
        mView = (TextView) mActivity.findViewById(com.exemple.helloandroid.R.id.textview);
        resourceString = mActivity.getString(com.exemple.helloandroid.R.string.hello);
    }
    public void testPreconditions() {
      assertNotNull(mView);
    }
    public void testText() {
      assertEquals(resourceString,(String)mView.getText());
    }
}

Lancer les tests et voir le résultat
Vous pouvez maintenant lancer les tests que vous avez créé pour l’application HelloAndroid. Pour les lancer comme des Android JUnit test, dans le Package Explorer, clic-droit sur le projet HelloAndroidTest et sélectionnez : Run As > Android JUnit Test

Image IPB

Les tests vont alors se lancer dans l’émulateur. Un nouvel onglet va s’afficher automatiquement à côté du Package Explorer, l’onglet JUnit, qui vous exposera le résultat des tests.

Image IPB

• "Finished after x seconds": Combien de temps a duré l’exécution du test.
• "Runs": Le nombre de test executes.
• "Errors:": Le nombre d’erreur et exception rencontrées durant l’exécution du test.
• "Failures:": Le nombre d’échecs rencontrés durant l’exécution du test.
• A progress bar. Barre de progression pour indiquer ou en sont les tests. S’ils réussissent elle est verte, sinon elle est rouge.
Débutante mais je me soigne... ;)

Publicité

edelalife

#2
Puni

Puni

    Android à poil vert

  • Membre
  • 357 messages
1
Si j'ai bien compris, cela permet de tester son application pour voir les éventuels bugs qu'il y a ?

En tout cas c'est sympa de l'avoir traduit :)

#3
MzelleNeskimo

MzelleNeskimo

    Membre

  • Membre
  • 12 messages
0
  • LieuToulouse
Vi voilà en gros je m'en sert pour tester ce qui s'afficher et le comparer à ce qui aurait du s'afficher, dans tous les cas imaginables ^^
Débutante mais je me soigne... ;)

#4
xnopre

xnopre

    Newbie

  • Membre
  • 5 messages
0
Bonjour,

Merci pour ce tuto.

Info : le lien du début vers l'article initial ne fonctionne pas, il y a un '.' en trop à la fin (le '.' de la phrase est pris dans le lien)

Xavier




0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)