GLO-4002 - Site du cours 2023

Temps estimé: 5 minutes

Exercices préparatoires III

Question 1

Calculez le code coverage à partir de l'extrait de code suivant:

class EmailValidator:
    _emailRegex: Regex = new RegEx("[a-zA-Z]+[@][a-z]+[.]com")

    def validEmail(email: string):
        return this._emailRegex.matches(email);

class EmailValidatorTest:
    cut: EmailValidator

    @beforeEach
    def setUp():
        cut = new EmailValidator()

    def validEmail_withValidEmail_shouldReturnTrue():
        email = "email@gmail.com"

        result = cut.validEmail()

        expect(result).toBeTruthy()
  • 100%

Question 2

S'agit-il d'un bon code coverage? Quelle est la valeur ciblée pour cette métrique habituellement?

  • bien entendu
  • le code coverage n'est pas un objectif
  • il n'est parfois pas possible de couvrir tout le code (notamment pour les hexagones externes de bas-niveau)
  • d'autre part, un bon code coverage n'est en aucun cas un gage de qualité

Question 3

Commentez la qualité du code et des tests

  • les tests ne valident presque rien du comportement désiré
  • la regex est beaucoup trop simpliste pour respecter la spécification réelle des adresses courriel

Question 4

Trouvez une manière de "briser" le code sans modifier le code

  • passer une adresse courriel qui contient des chiffres
  • retournera faux, mais serait dans les faits une adresse valide