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()
☑️ Solution
- 100%
Question 2
S'agit-il d'un bon code coverage? Quelle est la valeur ciblée pour cette métrique habituellement?
☑️ Solution
- 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
☑️ Solution
- 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
☑️ Solution
- passer une adresse courriel qui contient des chiffres
- retournera faux, mais serait dans les faits une adresse valide