Leçon 8 / 10 — Chapitre 8: Structurer et tester un projet
Tests avec assert, approfondi
Python Avancé a déjà entrevu assert : cette leçon approfondit son usage pour tester systématiquement une fonction, avec plusieurs cas et des cas limites.
def diviser(a, b):
if b == 0:
raise ValueError("Division par zero")
return a / b
assert diviser(10, 2) == 5.0
assert diviser(9, 3) == 3.0
assert diviser(-6, 2) == -3.0
print("Tous les tests sont passes")
Ce code affiche Tous les tests sont passes : chaque assert vérifie silencieusement une égalité (rien ne s'affiche si elle est vraie) — si une seule d'entre elles échouait, Python lèverait une AssertionError et interromprait l'exécution à cet endroit précis.
Un bon jeu de tests couvre aussi les cas limites : des valeurs à la frontière d'un comportement particulier, où une erreur est la plus susceptible de se cacher.
try:
diviser(10, 0)
assert False, "Une erreur aurait du etre levee"
except ValueError:
pass
print("Cas limite verifie")
Ce code vérifie qu'une division par zéro lève bien l'erreur attendue : si diviser(10, 0) ne levait pas d'erreur (un bug), assert False, "..." échouerait avec ce message précis — le except ValueError: pass (vu dans Python Intermédiaire) n'intercepte l'erreur que si elle est bien levée comme prévu.
À vous de jouer : écrivez trois assert pour une fonction de votre choix, dont un qui teste un cas limite (une valeur à zéro, une liste vide, ou une chaîne vide).
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