La dernière fois que j’ai utilisé JUnit pour faire des tests unitaires, l’intégration avec Eclipse était plutôt bien faite et surtout, le monde n’était pas encore passé à Java 5. Je me suis remis dernièrement aux tests unitaires et j’ai découvert la puissance de Junit 4 et des annotations.

Evidemment tout cela ne va pas sans heurt. Il y a 2 ans j’aurais écrit une TestSuite comme celles générées par l’actuel plugin JUnit d’Eclipse, par exemple:

import junit.framework.Test;
import junit.framework.TestSuite;

public class AllTests {

public static Test suite() {
TestSuite suite = new TestSuite(
"Test for default package");

suite.addTestSuite(Test1.class);
suite.addTestSuite(Test2.class);
suite.addTestSuite(Test3.class);

return suite;
}
}

Le problème, c’est que cette TestSuite ne tourne plus sous JUnit 4 ! En effet, l’architecture de JUnit a été complètement repensée et nettoyée.

Là où intervient toute la puissance des annotations, c’est que maintenant ma TestSuite ressemble à ça:

import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;

@RunWith(Suite.class)
@SuiteClasses(value={
Test1.class,
Test2.class,
Test3.class,
})
public class AllTests{
}

Code propre, clair, rapide à écrire – et même simple à générer ! Merci les gens :)