• 10 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 09/02/2021

Maîtrisez les bonnes pratiques pour réaliser des tests JUnit pertinents

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Compétences évaluées

  • Écrire des tests unitaires

Description

Validez les compétences acquises dans la première partie du cours en complétant ce quiz.

 

À vous de jouer !

  • Question 1

    Parmi les propositions suivantes, lesquelles sont vraies à propos du TDD ?

    Attention, plusieurs réponses sont possibles.
    • Vous commencez par écrire un test qui échoue avant d'écrire le code d'une fonctionnalité.

    • Vous commencez par implémenter juste ce qui est nécessaire pour commencer à écrire un test.

    • En principe, vous écrivez plusieurs tests pour une méthode/unité de code d'application.

    • En principe, vous écrivez un seul test par méthode/unité de code d'application.

  • Question 2

    Imaginez que vous êtes en charge de relire un test unitaire, réalisé par un collègue, sur la classe suivante :

    public class Person {
    private String firstName;
    private String lastName;
    public Person(String firstName, String lastName) {
    this.firstName = firstName;
    this.lastName = lastName;
    }
    public String getFullName() {
    return String.format("%s %s", firstName, lastName);
    }
    }

    Voici le test que vous devez relire :

    public class PersonTest {
    public static void getFullName_shouldReturnTheFirstAndLastName_whenAPersonHasBoth() {
    // Arrange
    String expected = "Katherine Janelay";
    Person personUnderTest = new Person("Katherine", "Janelay");
    // Act
    String fullName = person.getFullName();
    // Assert
    Boolean testIsSuccessful = fullName.equals(expected);
    assert( testIsSuccessful );
    System.out.println("Passed: " + testIsSuccessful );
    }
    public static void main(String[] args) {
    getFullName_shouldReturnTheFirstAndLastName_whenAPersonHasBoth();
    }
    }

    Quelles remarques pertinentes pouvez-vous faire ?

    Attention, plusieurs réponses sont possibles.
    • La méthode main() devrait être annotée @BeforeEach.

    • Il manque l'annotation @Test au-dessus de la méthode getFullName[...].

    • Le mot clé assert n'est pas adapté pour faire du test unitaire.

    • Les tests n'ont pas à être appelés depuis une méthode main().

  • Question 3

    Qu'est-ce que la technique rouge-vert-refactor ?

    • Une technique pour surligner du code : un code de mauvaise qualité est marqué en rouge, et une fois le problème résolu, il est surligné en vert pour le relecteur. Résoudre le problème est appelé refactoring.

    • Une technique où vous commencez par écrire un test qui échoue (rouge), puis vous écrivez le code pour le faire passer (vert). Enfin, vous améliorez la qualité de votre code tout en vous assurant que le test passe toujours (refactor).

    • Une bibliothèque de tests qui surlignent les tests en échec en rouge et les tests passés avec succès en vert. Vous refactorisez le code en rouge pour qu'il passe au vert.

    • Un modèle de conception de classe qui gère l'arrêt des tests (rouge) et leur redémarrage (vert). Vous refactorisez alors les tests arrêtés avant de les redémarrer.