Leçon 9 / 10 — Chapitre 8: Structurer et tester un projet
Organiser des fonctions de test dans un fichier dédié
Regrouper les assert dans des fonctions de test dédiées, plutôt qu'en ligne dans le script principal, rend le résultat de chaque test plus clair — et permet de continuer les autres tests même si l'un d'eux échoue.
def diviser(a, b):
if b == 0:
raise ValueError("Division par zero")
return a / b
def tester_diviser_cas_normal():
assert diviser(10, 2) == 5.0
assert diviser(9, 3) == 3.0
def tester_diviser_par_zero():
try:
diviser(10, 0)
assert False, "Une erreur aurait du etre levee"
except ValueError:
pass
def executer_tous_les_tests():
tests = [tester_diviser_cas_normal, tester_diviser_par_zero]
for test in tests:
test()
print(f"{test.__name__} : OK")
executer_tous_les_tests()
Ce code affiche tester_diviser_cas_normal : OK puis tester_diviser_par_zero : OK : executer_tous_les_tests() parcourt une liste de fonctions (vu au premier chapitre, une fonction passée comme valeur), en appelant chacune à son tour.
Une convention très répandue nommé chaque fonction de test avec le préfixe tester_ (ou test_ en anglais), ce qui permet aussi à des outils spécialisés (comme pytest, hors bibliothèque standard) de les repérer et de les exécuter automatiquement, sans liste manuelle comme tests = [...] ci-dessus.
À vous de jouer : écrivez deux fonctions de test avec le préfixe tester_, puis une fonction executer_tous_les_tests() qui les appelle toutes les deux à la suite.
Continuez ce module
Débloquez les leçons restantes ainsi que la certification finale.
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 87 leçons restantes de ce module
Votre paiement est vérifié avant l'activation de l'accès