Skip to article frontmatterSkip to article content

Tests unitaires en Java

IUT d'Orsay, Université Paris-Saclay

Structure du projet

Supposons que votre projet a la structure suivante :

src/
    myfirstpackage/
        MyFirstClass.java
        MySecondClass.java
    mysecondpackage/
        MyThirdClass.java
        MyFourthClass.java

Dans ce cas, vous allez créer un répertoire tests/ qui aura la même structure et sera au même niveau que le répertoire src/ :

src/
    myfirstpackage/
        MyFirstClass.java
        MySecondClass.java
    mysecondpackage/
        MyThirdClass.java
        MyFourthClass.java
tests/
    myfirstpackagetest/
        MyFirstClassTest.java
        MySecondClassTest.java
    mysecondpackagetest/
        MyThirdClassTest.java
        MyFourthClassTest.java

Compilation automatique des tests

Pour compiler automatiquement les tests unitaires sous Eclipse :

  1. Dans Project, assurez-vous que l’option Build automatically est activée.
  2. Dans File > Properties, cliquez sur Java Build Path.
  3. Dans l’onglet Source, cliquez sur le bouton Add Folder et ajoutez le répertoire tests/.
  4. Nous avons besoin des assertions pour les tests unitaires mais assert est ignoré par défaut en Java, il faut donc ajouter l’option -ea (enable assertions) dans Run > Run configurations... > Arguments > VM arguments.

Syntaxes

Voici un example simple de test unitaire en Java :

MyFirstClass.java
MyFirstClassTest.java
package myfirstpackage;

public class MyFirstClass {
    public static int myStaticMethod(int myArgument) {
        // Some code
        throw new IllegalArgumentException("Some exception");
        // Some more code
        return 0; // Some return value
    }
}

Voici un example ou nous pouvons créer des objets avec des attributs et les tester :

MySecondClass.java
MySecondClassTest.java
package myfirstpackage;

public class MySecondClass {
    private int myPrivateAttribute;

    public MySecondClass(int someValue) {
        this.myPrivateAttribute = someValue;
    }

    public int getMyPrivateAttribute() {
        return this.myPrivateAttribute;
    }

    public int myNonStaticMethod(int myArgument) {
        return this.myPrivateAttribute + myArgument; // Example return value
    }
}

Instructions pour le projet