Cours

Vous pouvez récupérer le support de cours ici.

Démarrage

Récupérez le fichier ./tp_junit.zip qui contient les 2 fichiers sources. Créez un projet sous Eclipse. Ajoutez le fichier Queue.java

Créez un nouveau dossier source (clic droit puis New > Source folder) nommé test. Effectuez ensuite un clic droit sur Queue puis New > Junit Test Case. Choisissez votre répertoire test comme répertoire source. Vous voilà normalement prêt à faire du TDD.

Vu que nous avons écrit quelques tests en cours, vous pouvez compléter votre QueueTest en utilisant le QueueTest fourni dans l'archive zip.

Partie 1 : FIFO

Cette partie concerne la définition d'une structure First In, First Out (FIFO) : une file.

Passer les tests

Lancer les tests avec Eclipse.

A ce stade, les tests devraient échouer, ce qui est tout à fait normal.

En vous aidant des méthodes proposées par la classe LinkedList<E>, écrivez votre Queue<E>.

Cette partie est terminée lorsque la barre est verte (tous les tests passent).

Les besoins changent

Les besoins ont changé, il faudrait rajouter quelques méthodes:

public int size()

Qui renverra la taille de la liste.

public E front()

Qui renvoie le prochain élément de la file sans le retirer.

Développer la classe en suivant un processus de TDD :

  1. Ecrivez les méthodes vides
  2. Ecrivez les tests correspondants
  3. Les tests vont échouer
  4. Modifiez le code pour faire passer les tests

Partie 2 : LIFO

Il se trouve que le chef de projet a exprimé le besoin d'une pile (ou stack). Une pile est une structure First In, Last Out (FILO ou LIFO). Comme une pile d'assiettes par exemple, le dernier rentré est le premier à ressortir.

Définir les besoins et les tests

Créez la classe Stack vide ainsi que les méthodes vides dont vous avez besoin.

Réfléchissez à vos besoins et écrivez les tests (indice: ils devraient être assez similaires à ceux de la partie 1).

Ecrire le code

Ecrivez le code permettant d'implémenter la pile (indice, lui aussi devrait être proche du code de Queue).

Partie 3 (Bonus)

Cette partie bonus n'est pas à rendre, vous pouvez la faire si vous avez fini le TP en avance ou si vous voulez mettre à l'épreuve vos talents.

Il s'agit de refaire la partie 1 sans utiliser les classes Java (LinkedList, ArrayList, Vector, …) ni de tableaux. En fait, il faut définir une liste chaînée manuellement. Chaque élément possède une référence vers l'élément suivant (notion de chaîne).

Partie 4 (Super-bonus)

Cette partie super-bonus n'est pas à rendre et correspond au tutoriel officiel de JUnit.

Il s'agit de faire les exercices du fichier suivant : TPJUnit.pdf

Rendu du travail

A la fin de la séance, envoyez les archives .zip correspondant à votre travail achevé à Gauthier Picard.


Gauthier Picard, September 2011