Licence 3 Informatique – Génie Logiciel
Tests Unitaires & Structures de données
Objectifs
ü Comprendre le fonctionnement des tests unitaires à travers quelques Katas simples (et
très connus).
ü Pour chaque exercice vous devrez écrire le test AVANT d’écrire le code de la
solution.
ü La priorité pendant la séance de TD sera d’écrire ces tests, le code proprement dit
pourra être écrit et testé lors du prochain TP.
Rappels de commande
Dans le cadre de ce TP vous aurez besoin de relativement peu d’instructions JUnit.
• Les tests d’égalité se font avec assertEquals(expected, value)
• Les tests de condition : assertTrue(condition) ou assertFalse(condition)
Exercice 1 : Fizz Buzz
L’objectif est d’écrire un programme reposant sur une classe FizzBuzz possédant une seule
Advertisement
méthode :
ü String getResult(int val)
Cette méthode répond « Fizz », « Buzz » ou « FizzBuzz » en fonction du nombre fourni en
paramètre :
ü « Fizz » si le nombre est divisible par 3
ü « Buzz » si le nombre est divisible par 5
ü « FizzBuzz » si le nombre est divisible par 15
Questions :
ü Ecrivez le test unitaire correspondant à la classe FizzBuzz
ü Ecrivez la classe FizzBuzz avec une méthode principale permettant d’afficher toute
les valeurs comprises entre 0 et 100 à l’écran et respectant les règles précédentes (si le
nombre est divisible par 3 on affiche « Fizz » à la place de ce nombre. Idem pour
« Buzz » et « FizzBuzz »)
Mode avancé pour les plus rapides :
ü « Fizz » si le nombre est divisible par 3 OU est composé d’un 3 (comme 13 par
Advertisement
exemple)
ü « Buzz » si le nombre est divisible par 5 OU est composé d’un 5.
Génie Logiciel
Licence 3 Informatique – Génie Logiciel
Exercice 2: Berlin-Uhr
L’horloge berlinoise a été inventée par Dieter Binninger. C’est la première horloge
permettant d’afficher l’heure uniquement à l’aide de lumières. Elle fut installée à
Berlin en 1975.
Fonctionnement de l’horloge
Le fonctionnement est en fait assez simple. Chaque ligne de l’horloge permet de définir une
certaine durée écoulée. La lecture des lignes se fait de haut en bas.
ü Chaque lumière de la première ligne représente une durée de 5h
ü Chaque lumière de la seconde ligne représente une durée de 1h
ü Chaque lumière de la troisième ligne représente une durée de 5min
ü Chaque lumière de la quatrième ligne représente une durée d’1min
Advertisement
ü La grosse lumière ronde en haut de l’horloge est allumée lorsque le nombre de
seconde est pair, éteinte sinon
Les couleurs des lampes sont là pour faciliter la lecture. Ainsi, sur la troisième ligne qui
représente les minutes, les lampes 3, 6 et 9 sont rouges et les autres jaunes. Elles représentent
les quarts d’heure.
Les lumières peuvent donc avoir trois valeurs :
ü R : Rouge
ü O : Off
ü J : Jaune
Dans cet exercice nous allons donc faire une conversion d’une heure au format
heures:minutes:secondes (exemple : 12:18:48) en un affichage en ligne de commande
correspondant à l’horloge de Berlin.
Questions
ü Ecrivez le test permettant de vérifier le fonctionnement de la classe BerlinUhr
ü Ecrivez la classe BerlinUhr
Advertisement
Exercice 3 : Calculatrice Postfixée ou calculatrice polonaise
Le principe de la notation polonaise repose sur l’idée que l’opérateur doit suivre les
opérandes. Le grand intérêt de cette notation est qu’elle rend inutile l’utilisation de
parenthèses et peut donc s’utiliser de manière interactive :
ü 3 + 4 à 3 4 +
ü (3 + 4) 5 à 3 4 + 5 ou 5 3 4 + *
Questions
ü Quelle est la structure de données qui vous parait la plus adaptée ? Pourquoi ?
ü Comment allez-vous différenciez les chiffres des nombres ?
ü Comment allez-vous gérer les nombres négatifs ?
ü Une fois que vous avez répondu à ces questions, écrivez le test de la calculatrice
ü Ecrivez ensuite la classe CalculatricePolonaise qui permettra d’effectuer les calculs fournis au
clavier par l’utilisateur.
Génie Logiciel