1/14
Fiches de vocabulaire couvrant les principes, la syntaxe et les méthodes des tests unitaires avec Pytest ainsi que le cycle de développement orienté par les tests (TDD).
Test unitaire
Méthode de travail consistant à tester des petites parties de code (appelées unités, le plus souvent des fonctions ou des classes) de manière isolée pour vérifier que chaque élément constitutif est en bonne santé.
Test d'intégration
Type de test vérifiant que différentes unités de code fonctionnent correctement ensemble lors de cas d'usage réels, nécessitant souvent des données externes comme des bases de données ou des serveurs web.
TDD (Test Driven Development)
Approche de développement itérative dans laquelle les tests unitaires sont rédigés avant même l'implémentation du code de production correspondant.
Kent Beck
Auteur ayant popularisé le terme et la pratique du Test Driven Development (TDD) à travers des ouvrages démontrant les avantages de l'agilité et des tests automatisés.
Étape Red (TDD)
Première phase du cycle TDD consistant à identifier une fonctionnalité et à écrire son test unitaire, lequel doit obligatoirement échouer car la fonctionnalité n'est pas encore implémentée.
Étape Green (TDD)
Deuxième phase du cycle TDD consistant à écrire le minimum de code requis pour faire réussir le test précédemment échoué, en se concentrant sur l'efficacité sans chercher l'optimisation immédiate.
Étape Refactor (TDD)
Troisième phase du cycle TDD visant à nettoyer et optimiser le code produit tout en garantissant que l'ensemble des tests continue de passer avec succès.
Étape Repeat (TDD)
Quatrième phase du cycle TDD consistant à recommencer le cycle Red-Green-Refactor pour implémenter successivement toutes les fonctionnalités nécessaires.
Pytest
Framework de test automatisé sous Python, intuitif, qui requiert par convention que les fonctions de test commencent obligatoirement par le préfixe test_.
Unittest
Framework standard et historique d'automated testing intégré par défaut dans le langage Python.
Instruction assert
Instruction permettant de vérifier qu'une condition ou qu'un appel de fonction produit le résultat attendu (ex: assert fonction(arguments) == résultat attendu), levant une AssertionError en cas d'invalidation.
Effet secondaire (side effect)
Modification involontaire ou collatérale de l'environnement (comme la valeur d'une variable ou l'attribut d'une classe) provoquée par l'exécution d'une unité de code, pouvant nuire à l'isolation des tests.
pytest.raises
Gestionnaire de contexte de Pytest (with pytest.raises(Exception)) utilisé pour s'assurer qu'un bloc de code lève explicitement une exception ou une erreur précise.
Fixture (@pytest.fixture)
Décorateur de Pytest créant une fonction d'initialisation réutilisable, passée en argument aux fonctions de test et instanciée de nouveau à chaque test individuel.
Test paramétré (@pytest.mark.parametrize)
Décorateur de Pytest permettant de tester plusieurs scénarios d'entrées et de sorties attendues au sein d'une seule et même fonction de test.