Outils pour utilisateurs

Outils du site


developpement:java:junit

Test unitaires avec JUnit

Junit est un cadre de développement utilisé pour implémenter et exécuter les tests unitaires.

Avantages

Un test unitaire :

  1. facilite et canalise la réflexion.
    • permet d'aboutir à une meilleure conception.
    • met l'accent sur l'utilisation des classes plutôt que leur seule implémentation.
  2. donne un point de repère sur l'avancement du travail.
  3. permet de tester rapidement le code après un changement.
  4. joue le rôle de documentation des services d'une classe.

Limitations

Un test unitaire :

  1. test certains chemins d’exécution mais pas tous.
    • ne permet pas de trouver toutes les erreurs.
    • indique la présence d’une erreur mais pas l’absence d’erreur.
  2. test les fonctionnalités plutôt que les qualités du système
  3. nécessite du temps de développement, de la discipline, etc.
  4. peut être erroné.

Implémenter les tests

import junit.framework.TestCase;
 
public class BidonTest extends TestCase {
 
    private Bidon c = new Bidon();
    public void testMystere() {
        assertEquals(0, c.mystere());
    }
}

Types d'assertions :

  • assertEquals
  • assertFalse
  • assertNotNull
  • assertNotSame
  • assertTrue

Exécuter les tests

import junit.framework.Test;
import junit.framework.TestSuite;
 
public class BidonTestSuite {
    public static Test suite() {
        TestSuite suite = new TestSuite();
        suite.addTestSuite(BidonTest.class);
        return suite;
    }
 
    public static void main(String[] args) {
        junit.textui.TestRunner.run(suite());
    }
}

Exemple

Classe

public class Calculatrice {
    private int resultat;
 
    public Calculatrice() {
        resultat = 0;
    }
 
    public int plus(int a, int b) {
        resultat = a + b;
        return resultat;
    }
 
    public int moins(int a, int b) {
        resultat = a - b;
        return resultat;
    }
 
    public int mul(int a, int b) {
        resultat = a * b;
        return resultat;
    }
 
    public int div(int a, int b) {
        if (b==0) {
            resultat=0;
        }
        else {
            resultat = a / b;
        }
        return resultat;
    }
 
    public int getDernierResultat() {
        return resultat;
    }
}

Test unitaire

import junit.framework.TestCase;
 
public class CalculatriceTest extends TestCase {
 
    private Calculatrice c = new Calculatrice();
 
    public void testMoins() {
        assertEquals(0, c.moins(5, 5));
    }
 
    public void testPlus() {
        assertEquals(10, c.plus(5, 5));
    }
 
    public void testMul() {
        assertEquals(25, c.mul(5, 5));
    }  
 
    public void testDiv() {
        assertEquals(3, c.div(15, 5));
        assertEquals(0, c.div(5, 0));
    }
 
    public void testCreation() {
        Calculatrice cc = new Calculatrice();
        assertEquals(0, cc.getDernierResultat());
    } 
 
    publicvoidtestDernierResultat() {
        c.plus(5,5);
        assertEquals(10, c.getDernierResultat());
    }
}

Ressources

developpement/java/junit.txt · Dernière modification : 2022/02/02 00:42 de 127.0.0.1