Dans cette étape, nous vous demandons de partir de l'archive proposée. En effet, le projet dans cette archive intègre des modifications présentées pendant le cours sur les tests.
Lors de cette étape, nous vous conseillons de suivre les diapositives du cours pour vous aider à répondre aux questions. Pensez à consulter les diapositives référencées dans ce sujet de TP.
util.jar
que vous devez d'abord télécharger dans votre espace de travail.
Nous vous proposons dans ce TP d'utiliser le canevas logiciel (la librairie) JUnit pour écrire les tests. Ce canevas logiciel utilise les annotations Java.
Vous avez eu une introduction au canevas logiciel JUnit en cours. Lors du cours, vous ont été présentés des exemples de tests unitaires. Vous pouvez consulter ici la liste des modifications effectuées dans le code du projet MediaGraph pour intégrer ces tests unitaires.
Un certain nombre de tests présentés dans le cours ont été implantés. À titre d'exemple, ouvrez la classe JUnit_DocumentTest et parcourez rapidement les méthodes de test existantes. Exécutez les tests unitaires de cette classe dans Eclipse: dans le menu Run, choisissez Run as puis JUnit test ; cette action ouvre une perspective avec une barre verte, rouge ou bleue et des indicateurs montrant si les tests se sont déroulés correctement ou non.
En guise d'essai d'exécution en erreur d'un test, modifiez la méthode testReachableStates en retirant l'instruction d1.metEmpruntable(). Ré-exécutez la classe JUnit_DocumentTest et observez que le test correspondant « ne passe plus ».
À partir du cours, mettez à jour le fichier JUnit_DocumentTest.java du paquetage tests en ajoutant les tests qui manquent.
Vous devez ajouter les bonnes assertions pour chaque test et spécifier si besoin l'exception que doit générer le scénario du test (par exemple, comme dans l'annotation suivante « @Test(expected=OperationImpossible.class) »).
Voici les tests qui manquent :
Exécutez les tests unitaires dans Eclipse: dans le menu Run, choisissez Run as puis JUnit test ; cette action ouvre une perspective avec une barre verte, rouge ou bleue ainsi que des indicateurs montrant si les tests se sont déroulés correctement ou non.
Pendant le cours, une séquence a été proposée à la diapositive 30 concernant la coordination par la classe FicheEmprunt de l'interaction « emprunter », et ce conformément au corrigé du BE3-4 (regardez plus précisément les diagrammes de communications ou de séquence de l'opération emprunter). Ce test d'intégration est réalisé dans la classe IntegrationTest du paquetage tests de l'ossature fournie pour ce TP.
En vous inspirant des premiers tests d'intégration de la classe IntegrationTest, complétez la classe en écrivant les tests d'intégration pour l'interaction « restituer » qui testent l'enchaînement correct entre FicheEmprunt, Document et Client. Cette interaction est aussi décrite dans le corrigé du BE3-4. Voici les deux cas que nous vous proposons de tester :
Pendant le cours, le fichier de tests de validation AcceptanceTest du paquetage src a été construit avec les deux premiers tests de la table de décision du cas d'utilisation « emprunter un document » présentée dans la diapositive 16 du cours.
Cet exercice est un peu plus compliqué car il utilise des concepts avancés comme les classes abstraites.
Les tests unitaires de la classe Document appliqués à un objet d'une classe enfant comme Vidéo exercent les méthodes factorisées dans la classe Document mais ne sont complets ni pour les méthodes redéfinies dans les classes enfants, ni pour les méthodes introduites dans les classes enfants. Par conséquent, dans cette dernière question, nous complétons les tests de la classe Document pour les classes dérivées. Pour cela, nous proposons les étapes suivantes :
$Id: index.html 1544 2016-01-08 10:50:32Z conan $