Introduction au Module Unittest en Python : Rédaction de Tests Unitaires Structurés
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 constitue un excellent outil pour toute personne débutant dans les tests, car il structure les tests selon les principes de la programmation orientée objet.
Structure de Unittest
Dans Unittest, chaque test correspond à une méthode au sein d’une sous-classe de unittest.TestCase. Cette conception encourage le regroupement des tests liés, ce qui permet d’organiser le code de test de manière logique et d’en améliorer la lisibilité.
Écriture d’un test avec Unittest
Test d’une fonction simple qui calcule la moyenne de deux nombres. Voici la fonction à tester :
def calculate_average(num1, num2):
return (num1 + num2) / 2
Création d’un cas de test
Pour créer un cas de test, définir une classe héritant de unittest.TestCase. À l’intérieur de cette classe, il est possible de définir des méthodes pour tester la fonction calculate_average.
import unittest
class TestCalculateAverage(unittest.TestCase):
def test_integers(self):
self.assertEqual(calculate_average(10, 20), 15)
def test_floats(self):
self.assertAlmostEqual(calculate_average(10.5, 20.5), 15.5)
- D’abord,
importdu 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 les fonctionnalités de test ;- Chaque méthode de la classe doit commencer par
test_; - Les méthodes utilisent des instructions assert spécifiques pour vérifier si la condition est vraie.
Exemple de sortie d’un 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’exécution de test réussie :
...
----------------------------------------------------------------------
Ran 3 tests in 0.002s
OK
Exemple de sortie d’un 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 peut ressembler lorsqu’un test échoue :
..F
----------------------------------------------------------------------
Ran 3 tests in 0.003s
FAILED (failures=1)
======================================================================
FAIL: test_average_floats (test_module.TestCalculateAverage)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/path/to/test_module.py", line 10, in test_average_floats
self.assertAlmostEqual(calculate_average(10.0, 20.0), 15.1)
AssertionError: 15.0 != 15.1 within 7 places (0.10000000000000142 difference)
----------------------------------------------------------------------
Cette sortie comprend :
..Findique 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 une défaillance 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 l’erreur jusqu’à la ligne de 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 !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Awesome!
Completion rate improved to 3.13
Introduction au Module Unittest en Python : Rédaction de Tests Unitaires Structurés
Glissez pour afficher le menu
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 constitue un excellent outil pour toute personne débutant dans les tests, car il structure les tests selon les principes de la programmation orientée objet.
Structure de Unittest
Dans Unittest, chaque test correspond à une méthode au sein d’une sous-classe de unittest.TestCase. Cette conception encourage le regroupement des tests liés, ce qui permet d’organiser le code de test de manière logique et d’en améliorer la lisibilité.
Écriture d’un test avec Unittest
Test d’une fonction simple qui calcule la moyenne de deux nombres. Voici la fonction à tester :
def calculate_average(num1, num2):
return (num1 + num2) / 2
Création d’un cas de test
Pour créer un cas de test, définir une classe héritant de unittest.TestCase. À l’intérieur de cette classe, il est possible de définir des méthodes pour tester la fonction calculate_average.
import unittest
class TestCalculateAverage(unittest.TestCase):
def test_integers(self):
self.assertEqual(calculate_average(10, 20), 15)
def test_floats(self):
self.assertAlmostEqual(calculate_average(10.5, 20.5), 15.5)
- D’abord,
importdu 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 les fonctionnalités de test ;- Chaque méthode de la classe doit commencer par
test_; - Les méthodes utilisent des instructions assert spécifiques pour vérifier si la condition est vraie.
Exemple de sortie d’un 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’exécution de test réussie :
...
----------------------------------------------------------------------
Ran 3 tests in 0.002s
OK
Exemple de sortie d’un 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 peut ressembler lorsqu’un test échoue :
..F
----------------------------------------------------------------------
Ran 3 tests in 0.003s
FAILED (failures=1)
======================================================================
FAIL: test_average_floats (test_module.TestCalculateAverage)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/path/to/test_module.py", line 10, in test_average_floats
self.assertAlmostEqual(calculate_average(10.0, 20.0), 15.1)
AssertionError: 15.0 != 15.1 within 7 places (0.10000000000000142 difference)
----------------------------------------------------------------------
Cette sortie comprend :
..Findique 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 une défaillance 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 l’erreur jusqu’à la ligne de 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 !