Écriture de tests avec unittest
Glissez pour afficher le menu
Lorsque vous souhaitez vous assurer que votre code fonctionne comme prévu, l'écriture de tests automatisés est essentielle. Le module unittest de Python est un framework intégré qui permet de créer et d'organiser facilement des tests. Vous écrivez des cas de test en créant des classes qui héritent de unittest.TestCase. À l'intérieur de ces classes, vous définissez des méthodes dont les noms commencent par test_. Chaque méthode vérifie un aspect spécifique de votre code.
Une suite de tests est un ensemble de cas de test pouvant être exécutés ensemble. Par défaut, unittest découvre et exécute toutes les méthodes test_ dans vos classes TestCase. Pour vérifier si votre code produit les résultats attendus, vous utilisez des méthodes d'assertion telles que assertEqual, assertTrue, assertFalse et assertRaises. Ces méthodes d'assertion comparent les résultats réels aux résultats attendus et signalent les échecs en cas de non-concordance.
Pour exécuter vos tests, vous pouvez utiliser la ligne de commande ou appeler unittest.main() à la fin de votre fichier de test.
assertRaises suit un schéma distinct par rapport aux autres méthodes d'assertion comme assertEqual ou assertTrue. Au lieu de vérifier une valeur finale, il fonctionne comme un gestionnaire de contexte en utilisant l'instruction with pour créer une zone protégée. Cela permet au test de surveiller le code pendant son exécution et de « capturer » l'erreur attendue.
1234567891011121314151617181920212223import unittest def add(a, b): return a + b def divide(a, b): return a / b class TestMathFunctions(unittest.TestCase): def test_add_positive_numbers(self): self.assertEqual(add(2, 3), 5) def test_add_negative_numbers(self): self.assertEqual(add(-2, -3), -5) def test_divide_normal(self): self.assertAlmostEqual(divide(10, 2), 5.0) def test_divide_by_zero(self): with self.assertRaises(ZeroDivisionError): divide(10, 0) unittest.main(argv=['first-arg-is-ignored'], exit=False)
La fonction unittest.main() dans ce chapitre inclut quelques paramètres supplémentaires nécessaires uniquement pour cet environnement d'apprentissage. Ils permettent au code de s'exécuter correctement sur la plateforme et ne font pas partie des concepts fondamentaux de Python que vous devez apprendre pour le moment.
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