Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/06945.jsonl.gz/178

Activité : Réaliser un type enregistrement
Consigne
Lire la capsule de théorie et prendre connaissance de l’activité avant de réaliser la mise en route et de réaliser les tâches demandées.
Le code des tests unitaires doit être utilisé tel quel et ne doit pas être modifié. Le travail est individuel. Vous pouvez communiquer en respectant le code d’honneur.
Situation
Vous êtes affecté à un projet de développement d’un logiciel de gestion de bibliothèque. On vous charge de réaliser un type
Book et un module
BookOperation avec des sous‑programmes pour la manipulation de ce type. Vous recevez des tests unitaires en guise de spécification pour le type et pour les sous‑programmes à réaliser. Le code de la figure 1 contient les tests pour le constructeur de classe
Book et le code de la figure 2 contient les tests pour les sous‑programmes de la classe
BookOperations.
En observant le test du constructeur de la classe
Book dans la classe
BootTest, vous apprenez que le constructeur de la classe à deux paramètres : un identifiant de type
long et le titre du livre de type
String. Le test vous renseigne également sur le nom et le type de toutes les variables membres (champs) de ce type composé ainsi que sur les valeurs que celles-ci doivent avoir après l’exécution du constructeur.
De même, en observant les tests de la classe
BookOperations dans
BookOperationsTest, vous apprenez ce que doit faire chacune des méthodes (notamment grâce au commentaire) et quelle est sa signature (grâce à l’appel de la méthode). Par exemple, la signature de la méthode
getId est
public static int getId(Book b). Pour le déterminer, il suffit d’observer l’instruction qui contient l’appel de la méthode :
String actual = BookOperations.getId(b);. Cette instruction vous apprend que la méthode prend un paramètre de type
Book et qu’elle renvoie une valeur de type
String.
Résultat attendu
Un projet Maven avec contenant les classes suivantes :
- Book
- BookOperations
- BookTest
- BookOperationsTest
Objectifs
À la fin de ce travail, vous devez :
- Connaître les notions de type simple et de type composé.
- Connaître la notion de variable membre.
- Connaître la notion d’instanciation (création d’un objet).
- Connaître la syntaxe de l’opération d’instanciation en Java (opérateur
new).
- Connaître la notion de référence à un objet.
- Être capable de repérer les informations utiles dans les tests unitaires.
Ressources
Logiciel :
- Maven
- Visual Studio Code
- Machine virtuelle de développement
Documents :
Mise en route
Pour commencer, vous devez récupérer le projet Maven pour cette activité. Lancez VSCode, connectez-vous à la machine virtuel
dev-vm et ouvrez une fenêtre de terminal intégré. Rendez-vous dans le répertoire de projets (
cd ~/projects) et lancez la commande suivante :
1 git clone https://gitlab.epai-ict.ch/m404/book.git
Déplacez-vous dans le répertoire
book et ouvrez le projet avec la commande
code -r ..
À vous de jouer !
Tâche
-
Créez la classe
Bookdans le même répertoire que la classe
App. Déclarez les variables membres nécessaires (Attention : les variables sont seulement
public, elles ne sont pas
static) et définissez le constructeur en vous inspirant de la classe
Customerde la capsule de théorie. Ne passez au point suivant que lorsque le test unitaire de la classe
BookTests’exécute avec succès.
-
Créez la classe
BookOperationsdans le même répertoire que la classe
App. Définissez toutes les méthodes spécifiées plus haut en indiquant qu’elles ne sont pas encore implémentées en jetant une exception
throw new UnsupportedOperationException();.
-
Vérifier qu’il n’y a plus d’erreur de syntaxe dans
BookOperationsTestet exécuter les tests de cette classe pour s’assurer qu’ils échouent tous.
-
Implémenter les sous-programmes l’un après l’autre, dans l’ordre et en s’assurant que les tests correspondants passent avec succès avant de passer au suivant.
Demandez de l’aide en cas de besoin, mais essayez d’abord par vous-même et respectez toujours le code d’honneur !