Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Dernière 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/25 18:06] admin Cordier Amelie () [Partie 7. Finalisation du projet] |
||
---|---|---|---|
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' | ||
+ | * Ces éléments ne seront pas modifiées par la suite. | ||
+ | */ | ||
+ | @BeforeClass | ||
+ | public static void setUpClass() { | ||
+ | alan = new Personne(" | ||
+ | computing = new Livre(" | ||
+ | } | ||
+ | | ||
+ | /** | ||
+ | * | ||
+ | */ | ||
+ | @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, | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Test de getNumLivre de la classe Livre. | ||
+ | */ | ||
+ | @Test | ||
+ | public void testGetNumLivreTwoBooks() { | ||
+ | Livre mind = new Livre(" | ||
+ | Livre mind2 = new Livre(" | ||
+ | assertEquals(mind.getNumLivre()+1, | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Test de getTitre de la classe Livre. | ||
+ | */ | ||
+ | @Test | ||
+ | public void testGetTitre() { | ||
+ | String titreAttendu = " | ||
+ | assertTrue(computing.getTitre().equals(titreAttendu)); | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Test de getNombreDePages de la classe Livre. | ||
+ | */ | ||
+ | @Test | ||
+ | public void testGetNombreDePages() { | ||
+ | assertEquals(250, | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Test de getAuteur de la classe Livre. | ||
+ | */ | ||
+ | @Test | ||
+ | public void testGetAuteur() { | ||
+ | assertEquals(alan, | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Test de setTitre de la classe Livre. | ||
+ | */ | ||
+ | @Test | ||
+ | public void testSetTitre() { | ||
+ | Livre mind = new Livre("?", | ||
+ | mind.setTitre(" | ||
+ | assertTrue(mind.getTitre().equals(" | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Test de setAuteur de la classe Livre. | ||
+ | */ | ||
+ | @Test | ||
+ | public void testSetAuteur() { | ||
+ | Livre ged = new Livre("?", | ||
+ | Personne douglas = new Personne(" | ||
+ | ged.setAuteur(douglas); | ||
+ | assertTrue(ged.getAuteur().equals(douglas)); | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Test de setNombreDePages de la classe Livre. | ||
+ | */ | ||
+ | @Test | ||
+ | public void testSetNombreDePages() { | ||
+ | Livre mind = new Livre("?", | ||
+ | mind.setNombreDePages(500); | ||
+ | assertEquals(500, | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Test de toString de la classe Livre. | ||
+ | */ | ||
+ | @Test | ||
+ | public void testToString() { | ||
+ | String expStr = " | ||
+ | assertTrue(computing.toString().equals(expStr)); | ||
+ | } | ||
+ | } | ||
+ | | ||
</ | </ | ||
- | ====== Partie 5. Finir le TP | + | ====== Partie 5. La pause s' |
+ | |||
+ | 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, | ||
+ | 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 " | ||
+ | * l' | ||
+ | * le respect des conventions de nommage des variables | ||
+ | * le non " | ||
+ | * Vérifier que tous les tests passent, après les avoir refactorés au besoin | ||
+ | * Faire un commit de cette version " | ||
+ | |||
+ | <note tip> | ||
+ | |||
+ | ** Couverture des tests ** | ||
+ | |||
+ | Pour évaluer la qualité de vos tests, vous pouvez également analyser la couverture des tests. Il existe de nombreux outils indépendants pour faire cela (Jenkins, Sonar, etc.), mais ici, pour rester simples et efficaces, nous allons utiliser un plugin de Netbeans. | ||
+ | |||
+ | La première fois, il est nécessaire d' | ||
+ | |||
+ | Une fois le plugin installé et Netbeans redémarré, | ||
+ | |||
+ | ====== | ||
+ | |||
+ | Passez maintenant à l' | ||
+ | Pour mémoire : une bibliothèque est une structure dans laquelle on peut mettre des livres. | ||
+ | La classe '' | ||
+ | de la bibliothèque, | ||
+ | pour ces deux derniers cas (i.e. quand le livre n'est pas trouvé). | ||
+ | |||
+ | Essayez d' | ||
+ | * Création du squelette de la classe | ||
+ | * Écriture des tests unitaires | ||
+ | * Complétion de la classe | ||
+ | * Exécution des tests | ||
+ | * Refactoring jusqu' | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | ====== Partie 7. Finalisation du projet | ||
+ | |||
+ | A nouveau, prenez le temps d' | ||
+ | Refactorez ce qui nécessite de l' | ||
+ | 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 | ||
+ | |||
+ | 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. | ||
- | <note important> | ||
- | ====== Partie 6. Finalisation des documents | ||
- | * Javadoc | + | Le corrigé est disponible sur Github : https:// |
- | * Diagrammes UML | + |