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:23]
admin Cordier Amelie () [Partie 4. Génération de code]
ens:cvda2016:tpbiblio [2016/05/19 09:32]
admin Cordier Amelie () [Partie 5. La pause s'impose]
Ligne 224: Ligne 224:
   * Si la classe apparaît comme vide, cliquez (bouton droit) dessus, et choisissez d'afficher tous les champs.   * Si la classe apparaît comme vide, cliquez (bouton droit) dessus, et choisissez d'afficher tous les champs.
   * Cherchez comment générer du code Java directement à partir de ce diagramme de classes. Magique non ? Imaginez le temps que vous pourriez gagner sur un projet contenant plusieurs dizaines de classes et plusieurs packages !   * Cherchez comment générer du code Java directement à partir de ce diagramme de classes. Magique non ? Imaginez le temps que vous pourriez gagner sur un projet contenant plusieurs dizaines de classes et plusieurs packages !
-====== Partie 5. Finir le TP  ====== 
  
-<note important>En construction</note>+12. Il est temps de finir la classe ''Livre''. Récupérez la classe de test ci-dessous, complétez-là si vous le jugez utile, puis implémentez la classe livre de sorte à ce que tous les tests passent.  
 + 
 +<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> 
 +====== 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. Finalisation des documents  ====== ====== Partie 6. Finalisation des documents  ======
  
   * Javadoc   * Javadoc
   * Diagrammes UML   * Diagrammes UML