Il existe énormément de tutoriaux sur l'usage de JUnit sur le Web.
Nous vous proposons ici d'apprendre JUnit en utilisant certaines parties de ces tutoriaux.
Pour les étudiants qui pensent réaliser leur projet ou une partie de leur projet en php, voici quelques tutoriaux avec PHP UNit, mais que nous n'avons pas testé.
Pour en savoir plus sur l'environnement JUnit sous eclipse (sur la fin) : http://www.jmdoudoux.fr/java/dejae/chap011.htm
Reprenez l'exemple ci-après pour tester la gestion des exceptions :
Voir ici : http://rpouiller.developpez.com/tutoriels/java/tests-unitaires-junit4/#LIII-B
D'après Ce tutoriel
Une grande partie du code d'un test unitaire sert établir les conditions d'exécution du dit test. Au sein d'un même TestCase, il peut arriver que toutes les méthodes de test aient besoin d'un minimum de chose (une connexion à une base de données par exemple).
La mise en place de ces conditions est prévue par le framework JUnit. Plutôt que chacun de vos tests appelle une méthode de mise en place, puis une méthode de nettoyage, le framework JUnit lance automatiquement avant un test la méthode setUp, et la méthode tearDown à son issue. Libre à vous d'implémenter ces méthodes si vos tests ont tous besoin des mêmes choses pour fonctionner.
Vous allez à présent créer une suite de tests :
Vous pouvez comparer le code généré avec le code que voici : http://rpouiller.developpez.com/tutoriels/java/tests-unitaires-junit4/#LVII
http://www.vogella.com/articles/JUnit/article.html#juniteclipse_testsuite
Les tests paramétrés permettent d'exécuter plusieurs fois un cas de tests avec des valeurs différentes. Le cas de test doit être annoté avec @RunWith avec pour valeur Parameterized. Les paramètres sont indiqués par une méthode annotée avec @Parameters retournant une Collection. Le cas de tests paramétrés doit comporter un constructeur correspondant aux paramètres.
Voici ci-après un exemple de tests paramétrés. Adaptez le à votre exemple.
package math; import static org.junit.Assert.*; import java.util.Arrays; import java.util.List; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; @RunWith(Parameterized.class) public class ParametreTests { Calculator op; @Parameters public static List<Object[]> getParametres() { return Arrays.asList(new Object[][] { { 0, 0, 0 }, { 1, 3, 4 }, { 200, 800, 1000 } } ); } int first; int second; int result ; public ParametreTests(int premier, int second, int res) { first = premier; this.second = second; result = res; } @Before public void setUp() throws Exception { op = new Calculator(); } @After public void tearDown() throws Exception { } @Test public void testCalculer() throws Exception { System.out.println(first + "+ " + second +"="+ result); assertEquals(first, second, result); } }
Je sais, j'ai :