Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
ens:cvda2016:tpbiblio [2016/05/18 17:25]
admin Cordier Amelie () [Partie 4. Génération de code]
ens:cvda2016:tpbiblio [2016/05/19 10:00]
admin Cordier Amelie () [Partie 6. Finalisation des documents]
Ligne 228: Ligne 228:
  
 <file java LivreTest.java> <file java LivreTest.java>
 +/**
 + * Bibliothèque
 + * TP CVDA 2016 - Amélie Cordier
 + */
 +package bibliotheque;
  
 +import org.junit.After;
 +import org.junit.AfterClass;
 +import org.junit.Before;
 +import org.junit.BeforeClass;
 +import org.junit.Test;
 +import static org.junit.Assert.*;
 +
 +
 +/**
 + * Classe LivreTest
 + * @author Amélie Cordier - IUT Lyon 1
 + * @version 1.0
 + * mai 2016
 + */
 +public class LivreTest {
 +    
 +    static Personne alan;
 +    static Livre computing;
 +    
 +    /**
 +     *
 +     */
 +    public LivreTest() {
 +    }
 +    
 +    /**
 +     * Création d'une personne et d'un livre à l'initialisation des tests.
 +     * Ces éléments ne seront pas modifiées par la suite. 
 +     */
 +    @BeforeClass
 +    public static void setUpClass() {
 +        alan = new Personne("Turing", "Alan", 1912);
 +        computing = new Livre("Computing Machinery and Intelligence", 250, alan);
 +    }
 +    
 +    /**
 +     *
 +     */
 +    @AfterClass
 +    public static void tearDownClass() {
 +    }
 +    
 +    /**
 +     *
 +     */
 +    @Before
 +    public void setUp() {
 +    }
 +    
 +    /**
 +     *
 +     */
 +    @After
 +    public void tearDown() {
 +    }
 +
 +    /**
 +     * Test de getNumLivre de la classe Livre.
 +     */
 +    @Test
 +    public void testGetNumLivre() {
 +        assertEquals(0, computing.getNumLivre());
 +    }
 +
 +    /**
 +     * Test de getNumLivre de la classe Livre.
 +     */
 +    @Test
 +    public void testGetNumLivreTwoBooks() {
 +        Livre mind = new Livre("mind", 0, alan);
 +        Livre mind2 = new Livre("mind2", 0, alan);
 +        assertEquals(mind.getNumLivre()+1, mind2.getNumLivre());
 +    }
 +
 +    /**
 +     * Test de getTitre de la classe Livre.
 +     */
 +    @Test
 +    public void testGetTitre() {
 +        String titreAttendu = "Computing Machinery and Intelligence";
 +        assertTrue(computing.getTitre().equals(titreAttendu));
 +    }
 +
 +    /**
 +     * Test de getNombreDePages de la classe Livre.
 +     */
 +    @Test
 +    public void testGetNombreDePages() {
 +        assertEquals(250, computing.getNombreDePages());
 +    }
 +
 +    /**
 +     * Test de getAuteur de la classe Livre.
 +     */
 +    @Test
 +    public void testGetAuteur() {
 +        assertEquals(alan, computing.getAuteur());
 +    }
 +
 +    /**
 +     * Test de setTitre de la classe Livre.
 +     */
 +    @Test
 +    public void testSetTitre() {
 +        Livre mind = new Livre("?", 0, alan);
 +        mind.setTitre("Mind");
 +        assertTrue(mind.getTitre().equals("Mind"));
 +    }
 +
 +    /**
 +     * Test de setAuteur de la classe Livre.
 +     */
 +    @Test
 +    public void testSetAuteur() {
 +        Livre ged = new Livre("?", 0, alan);
 +        Personne douglas = new Personne("Hofstadter", "Douglas", 1945);  
 +        ged.setAuteur(douglas);
 +        assertTrue(ged.getAuteur().equals(douglas));
 +    }
 +
 +    /**
 +     * Test de setNombreDePages de la classe Livre.
 +     */
 +    @Test
 +    public void testSetNombreDePages() {
 +        Livre mind = new Livre("?", 0, alan);
 +        mind.setNombreDePages(500);
 +        assertEquals(500, mind.getNombreDePages());
 +    }
 +
 +    /**
 +     * Test de toString de la classe Livre.
 +     */
 +    @Test
 +    public void testToString() {
 +        String expStr = "Computing Machinery and Intelligence, Alan Turing, 250p.";
 +        assertTrue(computing.toString().equals(expStr));
 +    }
 +}
 +    
 </file> </file>
-====== Partie 5. Finir le TP  ======+====== Partie 5. La pause s'impose  ====== 
 + 
 +Dans la prochaine partie, vous allez passer à la gestion de la bibliothèque. 
 +Avant cela, il est nécessaire de prendre un peu de recul sur ce que vous avez fait, de vérifier que tout est codé correctement, etc. 
 +Prenez donc quelques minutes pour :  
 +  * Vérifier que les parties cruciales de votre code sont commentées correctement 
 +  * Vérifier que la Javadoc de ce qui est implémenté est correcte et complète 
 +  * Vérifier que vous n'avez pas oublié des tests importants 
 +  * Vérifier que vous respectez bien les bonnes pratiques de programmation (pensez au "refactor" et au "format"), dont 
 +    * l'indentation correcte du code  
 +    * le respect des conventions de nommage des variables  
 +    * le non "mixage" du français et de l'anglais dans votre code   
 +  * Vérifier que tous les tests passent, après les avoir refactorés au besoin 
 +  * Faire un commit de cette version "stable" de votre projet.  
 + 
 +<note tip>Notez que nous ferons un cours sur les bonnes pratiques de programmation... ce petit exercice n'est qu'un avant-goût !</note> 
 +====== Partie 6. Gestion de la bibliothèque  ====== 
 + 
 +Passez maintenant à l'implémentation de la bibliothèque selon la méthode que vous préférez.  
 +Pour mémoire : une bibliothèque est une structure dans laquelle on peut mettre des livres.  
 +La classe ''Bibliotheque'' doit proposer des méthodes pour ajouter un livre, afficher le contenu 
 +de la bibliothèque, rechercher par auteur, et rechercher par titre. Vous devez gérer les exceptions 
 +pour ces deux derniers cas (i.e. quand le livre n'est pas trouvé).  
 + 
 +Essayez d'adopter une démarche TDD pour réaliser cette partie :  
 +  * Création du squelette de la classe 
 +  * Écriture des tests unitaires 
 +  * Complétion de la classe 
 +  * Exécution des tests 
 +  * Refactoring jusqu'à ce que la classe soit complète et fonctionnelle 
 + 
 +<note important>Pensez bien à documenter votre code !</note> 
 + 
 +====== Partie 7. Finalisation du projet  ====== 
 + 
 +A nouveau, prenez le temps d'inspecter votre code, de vérifier qu'il est bien formaté et bien documenté. 
 +Refactorez ce qui nécessite de l'être et vérifiez grâce aux tests que vous n'avez rien cassé.  
 +Vérifiez la couverture de vos tests.  
 + 
 +Lorsque vous aurez terminé votre projet, il ne vous restera plus qu'à mettre à jour quelques éléments :  
 +  * La Javadoc, pour prendre en compte toutes les nouvelles améliorations que vous avez apportées 
 +  * Le diagramme de classe du projet, car il a nécessairement changé un peu depuis la conception initiale
  
-<note important>En construction</note> +De plus, si vous ne l'avez pas encore fait, il est probablement temps de pousser votre historique de commits sur un dépôt distant
-====== Partie 6Finalisation des documents  ======+
  
-  * Javadoc 
-  * Diagrammes UML