Untitled Quiz
26 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Quelle assertion est utilisée pour vérifier si deux objets référencent le même objet?

  • assertNotSame(a,b) (correct)
  • assertEquals(a,b)
  • assertNull(a)
  • assertSame(a,b) (correct)
  • Quelle méthode permet de regrouper différentes assertions pour afficher les échecs en fin de test?

  • assertThrows()
  • assertFalse()
  • assertAll() (correct)
  • assertTrue()
  • Quel est le but de l'assertion assertThrows() dans JUnit?

  • Vérifier l'égalité entre deux valeurs
  • Tester si une variable est nulle
  • Provoquer une erreur de test
  • Vérifier la levée d'une exception (correct)
  • Quelle méthode est utilisée pour tester si une valeur n'est pas égale à une autre dans JUnit?

    <p>assertNotEquals()</p> Signup and view all the answers

    Quelle assertion échouera si la commande attendue est présente mais dans un ordre différent?

    <p>assertArrayEquals()</p> Signup and view all the answers

    Dans quel package les assertions sont importées avec JUnit 5?

    <p>org.junit.jupiter.Assertions</p> Signup and view all the answers

    Quelle méthode devrait être utilisée pour vérifier si une valeur est nulle?

    <p>assertNull(a)</p> Signup and view all the answers

    Quelle méthode serait utilisée pour confirmer que la somme de 2 et 2 ne donne pas 3?

    <p>Assertions.assertNotEquals(3, Calculator.add(2, 2))</p> Signup and view all the answers

    Quelle annotation est utilisée pour exécuter une méthode avant chaque test dans JUnit 5?

    <p>@BeforeEach</p> Signup and view all the answers

    Quel est le but de la méthode annotée avec @AfterEach dans un cycle de vie de test?

    <p>Nettoyer les ressources après chaque test.</p> Signup and view all the answers

    Quel type d'assertion est utilisée pour vérifier que deux listes sont égales dans JUnit 5?

    <p>assertIterableEquals</p> Signup and view all the answers

    Quel sera le résultat de l'assertion suivante : assertTimeout(Duration.ofMillis(100), () -> { Thread.sleep(200); return 'result'; }); ?

    <p>Le test échouera.</p> Signup and view all the answers

    Pourquoi est-il nécessaire de créer une classe de test FooTest.java pour chaque classe Foo.java?

    <p>Pour organiser les tests de manière spécifique à chaque classe.</p> Signup and view all the answers

    Quelle assertion vérifiera si une exception du type NumberFormatException est lancée?

    <p>assertThrows</p> Signup and view all the answers

    Lors de l'exécution des tests, quelle méthode est appelée après chaque méthode annotée @Test?

    <p>La méthode annotée @AfterEach</p> Signup and view all the answers

    Dans quelle situation l'utilisation de assertAll est appropriée?

    <p>Pour regrouper plusieurs assertions et vérifier les résultats ensemble.</p> Signup and view all the answers

    Quelle annotation est utilisée pour exécuter une méthode avant chaque test dans JUnit 5?

    <p>@BeforeEach</p> Signup and view all the answers

    Quel est le principal avantage de JUnit 5 par rapport à JUnit 4?

    <p>Il prend en charge les tests paramétrés.</p> Signup and view all the answers

    Quelle annotation remplace @Ignore dans JUnit 5?

    <p>@Disabled</p> Signup and view all the answers

    Quelle annotation est utilisée pour exécuter une méthode après toutes les méthodes de test dans JUnit 5?

    <p>@AfterAll</p> Signup and view all the answers

    Quel moteur est utilisé dans JUnit 5 pour exécuter des tests écrits avec des versions antérieures de JUnit?

    <p>Vintage</p> Signup and view all the answers

    Quel est le nom de la combinaison du nouveau modèle de programmation et du modèle permettant de rédiger des tests dans JUnit 5?

    <p>Jupiter</p> Signup and view all the answers

    Quelle méthode d'assertion teste si deux valeurs sont égales dans JUnit?

    <p>assertEquals(a, b)</p> Signup and view all the answers

    Quelle annotation permet de définir un libellé pour une classe ou méthode de test dans JUnit 5?

    <p>@DisplayName</p> Signup and view all the answers

    Quel annotation permet d'exécuter une méthode spécifiée un certain nombre de fois dans JUnit 5?

    <p>@RepeatedTest</p> Signup and view all the answers

    Dans JUnit 5, quel changement a été apporté aux classes de test par rapport à JUnit 4?

    <p>Les classes de test peuvent être privées.</p> Signup and view all the answers

    Study Notes

    Les tests unitaires avec JUnit

    • JUnit est un outil pour tester des parties petites d'un logiciel, souvent des méthodes.
    • Les tests unitaires doivent être lancés souvent, au minimum à chaque modification de code.
    • Ils doivent être rapides et sans interaction avec l'utilisateur.
    • Ils sont exécutables automatiquement et écrits dans le même langage de programmation que le logiciel.

    Qu'est-ce que JUnit ?

    • JUnit est un environnement de test pour Java.
    • Il permet de décrire et d'exécuter des tests unitaires.
    • Unité = méthode pour le langage Java.

    Types d'Environnement de test

    • D'autres environnements de test existent pour d'autres langages de programmation comme C++, Python et JavaScript.
    • CUnit pour le C
    • CppUnit pour le C++
    • PyUnit pour le Python
    • JsUnit pour JavaScript

    JUnit Framework (1/2)

    • JUnit est utile pour tester des programmes et des classes Java.
    • On le fait au niveau des méthodes et des classes.
    • On peut l'utiliser pendant le développement du programme.
    • On l'utilise en utilisant des assertions.

    JUnit Framework (2/2)

    • JUnit est intégré dans l'IDE Eclipse mais il est aussi utilisable indépendamment.
    • La version actuelle est 5.9.1 pour Java 8 et versions supérieures.
    • Il existe un nouveau module JUnit Jupiter lancé en 2017
    • JUnit 5 supporte de nouveau styles de codage Java 8.

    Architecture JUnit 5 (1/2)

    • JUnit 5 a deux parties : Vintage et Jupiter
    • Vintage : Un outil pour exécuter les anciens tests JUnit
    • Jupiter : Le modèle de programmation et celui permettant de créer les tests.
    • Platform : Les IDE/ outils de build

    Architecture JUnit 5 (2/2)

    • Platform : un outil permettant de démarrer les tests dans la JVM (Java Virtual Machine), tout en offrant une méthode d'initialisation via la console ou un IDE.
    • Jupiter : la combinaison du modèle de programmation nouveau et du modèle permettant de créer les tests.
    • Vintage : un outil pour exécuter les anciens tests JUnit 3 ou 4.

    Les annotations JUnit 4 vs JUnit 5

    • Tableau récapitulatif des annotations JUnit 4 et 5 ainsi que leur définition
    • Avant, Après, avant Chaque, Après Chaque, assertions, etc

    Les annotations JUnit 4 vs JUnit 5 (2/3 - Exemple)

    • Exemples d'implémentation des annotations dans le code Java
    • Importations statiques et autres imports.

    Les annotations JUnit 4 vs JUnit 5 (3/3 - Exemple)

    • Exemple supplémentaires d'utilisation des annotations dans un code Java

    Les assertions (1/5)

    • L'utilisation des assertEquals() et assertNotEquals() permettent de tester des valeurs égales ou non égales.
    • assertSame() et assertNotSame() permettent de tester si l'objet réfère au même objet ou pas.
    • assertNull() et assertNotNull() vérifie si un objet pointe vers null ou non.

    Les assertions (2/5)

    • Les assertions incluent des comparaisons attendu/actuel.

    Les assertions (3/5)

    • Exemple d'utilisation des assertions avec des arrays.

    Les assertions (4/5)

    • Il présente la méthode assertAll() pour gérer des assertions groupées qui permettent de rapporter les erreurs ensemble.
    • Il représente également la méthode assertTimeout() qui vérifie si le bloc de test s'exécute dans le temps imparti.

    Les assertions (5/5)

    • Il présente la méthode assertThrows() qui vérifie le lancé d'une exception.
    • Il présente également un code exemple sur l'utilisation de iterableEquals.

    Cycle de vie des tests (1/2)

    • Pour chaque classe, il faut construire une nouvelle classe de tests.
    • Dans le constructeur de la classe de test, il faut initialiser le nom de la suite de tests.
    • Une méthode setUp() qui s'exécutera avant chaque test.
    • Une méthode tearDown() qui s'exécutera après chaque test.
    • Une ou plusieures méthodes qui implémentent les tests unitaires.

    Cycle de vie des tests (2/2)

    • L'ordre d'exécution des Tests.
    • Première méthode annotée @ BeforeAll
    • Pour chaque méthode annotée @Test, l'ordre indéterminé
    • Méthodes annotées @BeforeEach
    • Méthodes annotées @Test
    • Méthodes annotées @AfterEach
    • Méthode annotée @ AfterAll

    Développement des tests (1/7)

    • Créer un nouveau projet Java
    • Créer une classe java dans un package
    • Créer une classe de test dans un package

    Développement des tests (2/7)

    • Utiliser l'IDE Eclipse pour rédiger les tests

    Développement des tests (3/7)

    • Utiliser Junit pour créer les tests

    Développement des tests (4/7)

    • Ajouter la bibliothèque JUnit au classpath du projet.

    Développement des tests (5/7)

    • Génération automatique de la classe de test par l'IDE.

    Développement des tests (6/7)

    • Exécuter les tests avec le TestRunner.

    Développement des tests (7/7)

    • Succès ou échec du Test.

    Exemple HelloJUnit5 (1/2)

    • Exemple de code Java pour la classe à tester.

    Exemple HelloJUnit5 (2/2)

    • Exemple de code Java pour la classe de test associée à HelloMessage.

    Exemple d'intiation 1 : La classe sous test

    • Déclaration et méthodes de la classe Compte

    Exemple d'intiation 1 : La classe de test

    • Déclaration et méthodes de la classe TestCompte

    Exemple d'initiation 2

    • Déclaration et méthodes de la classe Calculator

    Nouveautés avec JUnit 5 (1/5)

    • Les annotations @Disabled et @Parameterized Test

    Nouveautés avec JUnit 5 (2/5)

    • Utiliser @ValueSource pour des valeurs différentes

    Nouveautés avec JUnit 5 (3/5)

    • Utiliser @CsvSource pour des valeurs à partir d'une source de données

    Nouveautés avec JUnit 5 (4/5)

    • Utiliser @CsvFileSource pour des données dans un fichier

    Nouveautés avec JUnit 5 (5/5)

    • Utiliser @RepeatedTest pour répéter un test.

    Application (1/2)

    • Exemple d'ajout de méthodes à la classe Calculator.

    Application (2/2)

    • Autres examples d'application.

    Tests suites with JUnit (1/3)

    • Le concept de suite de test avec JUnit.

    Tests suites with JUnit (2/3)

    • Utiliser @Suite et @SelectClasses pour spécifier les classes.

    Tests suites with JUnit (3/3)

    • Exemple de téléchargement de Jars pour utiliser la fonctionnalité de la suite de test.

    Timeout avec JUnit 5

    • Mise en œuvre de timeout avec JUnit 5

    Exécution des tests conditionnelle

    • Exécution des tests selon le système d'exploitation.

    Ordre des tests

    • Spécification de l'ordre des tests à exécuter.

    Lien du guide JUnit 5

    • Lien direct vers le guide JUnit 5.

    Couverture du code

    • Définition de la couverture du code et de comment la mesurer
    • Outil pour le Java, EclEmma etc

    Couverture du code avec EclEmma (1/2)

    • Installation du plugin Eclipse EclEmma

    Couverture du code avec EclEmma (2/2)

    • Exemple de couverture du test avec EclEmma

    Conclusion

    • Avantage de JUnit 5

    Application (Exercice)

    • Exemple d'application utilisant la classe LeapYear

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Related Documents

    Cours Junit PDF

    More Like This

    Untitled Quiz
    6 questions

    Untitled Quiz

    AdoredHealing avatar
    AdoredHealing
    Untitled Quiz
    19 questions

    Untitled Quiz

    TalentedFantasy1640 avatar
    TalentedFantasy1640
    Untitled Quiz
    55 questions

    Untitled Quiz

    StatuesquePrimrose avatar
    StatuesquePrimrose
    Untitled Quiz
    50 questions

    Untitled Quiz

    JoyousSulfur avatar
    JoyousSulfur
    Use Quizgecko on...
    Browser
    Browser