Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Introduction aux Tests en Python | Testing with unittest and pytest
Concepts Avancés de Python

Introduction aux Tests en Python

Glissez pour afficher le menu

Les tests constituent une pratique fondamentale dans le développement logiciel, garantissant que le code se comporte comme prévu et reste fiable au fil de son évolution. Les tests automatisés permettent de vérifier automatiquement le code, évitant ainsi les vérifications manuelles qui sont longues et sujettes aux erreurs. En écrivant des tests, il est possible de détecter rapidement lorsque des modifications altèrent des fonctionnalités existantes et de refactoriser ou d’étendre le code en toute confiance.

L’une des approches les plus populaires en matière de tests est le développement piloté par les tests (TDD). En TDD, on commence par écrire un test qui décrit un comportement ou une fonctionnalité souhaitée avant d’écrire le code qui l’implémente. Ce processus encourage à réfléchir attentivement aux exigences et aux cas limites dès le départ, ce qui conduit à un code plus propre et plus facile à maintenir. Après avoir écrit le test, on implémente le code minimal nécessaire pour le faire réussir, puis on refactore le code pour plus de clarté ou d’efficacité, en relançant les tests pour s’assurer que rien n’est cassé. Ce cycle — écrire un test, écrire le code, refactoriser — permet de construire progressivement des logiciels robustes.

Les tests ne servent pas uniquement à détecter des bugs. Ils font également office de documentation vivante pour le code, facilitant la compréhension de son fonctionnement par d’autres personnes (ou soi-même plus tard). Les tests automatisés sont particulièrement précieux lors du travail en équipe ou sur de grands projets, car ils offrent un filet de sécurité qui encourage l’expérimentation et des modifications de code en toute confiance.

12345
# A function to add two numbers def add(a, b): return a + b print(add(2, 3))
# A basic test case for the add function using unittest
import unittest

class TestAddFunction(unittest.TestCase):
    def test_add_positive_numbers(self):
        self.assertEqual(add(2, 3), 5)

    def test_add_zero(self):
        self.assertEqual(add(0, 5), 5)

    def test_add_negative_numbers(self):
        self.assertEqual(add(-1, -1), -2)

Le code fourni définit une classe de cas de test nommée TestAddFunction en utilisant le framework intégré unittest de Python. À l'intérieur de cette classe, vous trouvez trois méthodes de test :

  • test_add_positive_numbers vérifie que l'appel de add(2, 3) retourne 5 ;
  • test_add_zero vérifie que l'addition de zéro et cinq avec add(0, 5) retourne 5 ;
  • test_add_negative_numbers confirme que l'addition de deux nombres négatifs, add(-1, -1), retourne -2.

Chaque méthode de test utilise self.assertEqual pour comparer le résultat réel de la fonction add avec la valeur attendue. Si un test échoue, le framework le signalera, ce qui permet de détecter rapidement les erreurs.

question mark

Lequel des éléments suivants est un avantage clé des tests automatisés dans le développement Python ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 5. Chapitre 1

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Section 5. Chapitre 1
some-alt