Contenu du cours
Concepts Avancés de Python
Concepts Avancés de Python
Introduction au Framework Unittest
Unittest fait partie de la bibliothèque standard de Python, ce qui signifie qu'aucune installation supplémentaire n'est nécessaire pour commencer. Il est conçu autour du concept de cas de test, qui sont des classes Python dérivées de la classe TestCase du framework. Unittest est un excellent outil pour quiconque commence son parcours de test car il structure les tests d'une manière qui reflète les principes de la programmation orientée objet.
La Structure de Unittest
Dans Unittest, chaque test est une méthode au sein d'une sous-classe de unittest.TestCase
. Ce design encourage le regroupement de tests connexes, ce qui peut aider à organiser le code de test de manière logique et à le rendre plus lisible.
Écrire un Test avec Unittest
Testons une fonction simple qui calcule la moyenne de deux nombres. Voici la fonction que nous voulons tester :
Créer un Cas de Test
Pour créer un cas de test, vous devez définir une classe qui hérite de unittest.TestCase
. Au sein de cette classe, vous pouvez ensuite définir des méthodes pour tester la fonction calculate_average
.
- Tout d'abord, vous
import
le module Unittest, qui fait partie de la bibliothèque standard de Python ; class TestCalculateAverage(unittest.TestCase)
crée un nouveau cas de test. Il hérite deunittest.TestCase
, qui fournit la fonctionnalité de test ;- Chaque méthode de la classe doit commencer par
test_
; - Les méthodes utilisent une instruction assert spécifique pour vérifier si la condition est vraie.
Exemple d'une Sortie de Test Réussi
Lorsque tous les tests réussissent dans Unittest, la sortie est simple et indique que tous les tests ont été exécutés avec succès sans aucune défaillance. Voici un exemple d'une exécution de test réussie :
Exemple d'une Sortie de Test Échoué
Si un ou plusieurs tests échouent, la sortie fournira des détails sur les échecs, y compris quels tests ont échoué et pourquoi. Voici un exemple de ce à quoi cela pourrait ressembler lorsqu'un test échoue :
Cette sortie inclut :
..F
indique que trois tests ont été exécutés ; les deux premiers ont réussi (représentés par..
), et le troisième a échoué (F
);FAILED (failures=1)
montre qu'il y a eu un échec parmi les tests exécutés;- Le rapport d'erreur détaillé commence par l'identifiant du test (
test_average_floats
) et la classe (TestCalculateAverage
). Il fournit une trace de la ligne dans votre code de test qui a causé l'échec et explique la nature de l'erreur d'assertion, y compris la valeur attendue, la valeur réelle, et la marge d'erreur acceptable.
Merci pour vos commentaires !