Tests Unitaires avec Pytest et Test Driven Development (TDD)

0.0(0)
Studied by 0 people
call kaiCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/15

flashcard set

Earn XP

Description and Tags

Fiches de vocabulaire couvrant les principes, commandes et bonnes pratiques des tests unitaires avec Pytest ainsi que la méthodologie du Test Driven Development (TDD).

16 Terms

1
New cards

Test unitaire

Méthode agile de travail consistant à tester de manière isolée de petites parties d'un code (appelées unités), le plus souvent des fonctions ou des classes, pour vérifier que chaque élément constitutif fonctionne correctement à partir d'entrées données.

2
New cards

Test d'intégration

Procédure de test axée sur des cas d'usage réels qui s'assure que plusieurs unités de code fonctionnent ensemble, en faisant fréquemment appel à des ressources externes comme des bases de données ou des serveurs web.

3
New cards

TDD (Test Driven Development)

Approche de développement itérative popularisée par Kent Beck, dans laquelle les tests unitaires sont rédigés avant même l'implémentation du code correspondant afin de guider et fiabiliser la conception logicielle.

4
New cards

unittest

Framework standard d'automated testing intégré de base dans Python.

5
New cards

pytest

Framework de test automatisé pour Python, réputé plus intuitif que unittest, capable d'exécuter automatiquement les tests respectant la convention de nommage et de générer des rapports d'erreurs détaillés.

6
New cards

Convention de nommage pytest

Règle imposant de nommer les fichiers de test avec le suffixe _test.py (ou préfixe test_) et de commencer systématiquement les fonctions de test par le préfixe test_, sans quoi pytest ne les exécute pas.

7
New cards

Instruction assert

Méthode utilisée dans les tests sous la forme assert fonction(arguments) == résultat attendu pour valider une condition et renvoyer une erreur d'assertion détaillée en cas de non-concordance.

8
New cards

Effets secondaires (side effects)

Modifications indésirables ou imprévues de l'environnement provoquées par l'exécution d'une unité de code, telles que l'altération de la valeur d'une variable globale ou de l'attribut d'une classe.

9
New cards

pytest.raises

Instruction de pytest employée sous la forme de gestionnaire de contexte (with pytest.raises(TypeErreur):) pour s'assurer qu'une fonction ou un bloc de code lève bien une exception spécifique face à une entrée donnée.

10
New cards

Fixture (@pytest.fixture)

Fonction définie à l'aide du décorateur @pytest.fixture servant à instancier un objet ou à préparer un environnement réutilisable, injecté en argument dans les fonctions de test et réinstancié à chaque exécution.

11
New cards

Fonction de test paramétrée (@pytest.mark.parametrize)

Décorateur de pytest permettant d'exécuter une même fonction de test à travers plusieurs scénarios ou jeux de données différents en fournissant la liste des arguments et des valeurs attendues associées.

12
New cards

Étape Red (TDD)

Première étape du cycle TDD consistant à identifier la fonctionnalité souhaitée et à rédiger son test unitaire, qui doit obligatoirement échouer au départ puisque le code n'est pas encore implémenté.

13
New cards

Étape Green (TDD)

Deuxième étape du cycle TDD consistant à écrire le code minimal nécessaire pour faire passer le test précédemment échoué avec succès, en privilégiant l'efficacité immédiate plutôt que l'optimisation.

14
New cards

Étape Refactor (TDD)

Troisième étape du cycle TDD consistant à restructurer, nettoyer et optimiser le code produit tout en vérifiant que les tests unitaires continuent d'être validés.

15
New cards

Étape Repeat (TDD)

Quatrième étape du cycle TDD consistant à répéter le schéma Red, Green, Refactor pour ajouter chaque nouvelle fonctionnalité du projet de manière incrémentale.

16
New cards

Kent Beck

Auteur et figure de l'agilité ayant popularisé le terme et la pratique du TDD (Test Driven Development) à travers ses ouvrages sur le développement guidé par les tests automatisés.