Tutoriel PyUnit :Framework de test unitaire Python (avec exemple)
Qu'est-ce que les tests unitaires ?
Les tests unitaires en Python sont effectués pour identifier les bogues au début de la phase de développement de l'application lorsque les bogues sont moins récurrents et moins coûteux à corriger.
Un test unitaire est un test de niveau de code scripté conçu en Python pour vérifier une petite "unité" de fonctionnalité. Le test unitaire est un framework orienté objet basé sur des montages de test.
Techniques de tests unitaires Python
Les tests unitaires Python consistent principalement à tester un module particulier sans accéder à aucun code dépendant. Les développeurs peuvent utiliser des techniques telles que les stubs et les mocks pour séparer le code en "unités" et exécuter des tests au niveau de l'unité sur les éléments individuels.
- TDD de développement piloté par les tests : Les tests unitaires doivent être effectués avec Python, et pour cela, les développeurs utilisent la méthode de développement piloté par les tests. Dans la méthode TDD, vous concevez d'abord les tests unitaires Python, puis vous continuez à écrire le code qui implémentera cette fonctionnalité.
- Stubs et maquettes : Ce sont deux techniques principales qui simulent de fausses méthodes qui sont testées. Un stub est utilisé pour remplir certaines dépendances nécessaires au bon fonctionnement du test unitaire. Une simulation d'autre part est un faux objet qui exécute les tests où nous mettons assert.
Les intentions des deux méthodes sont les mêmes pour éliminer le test de toutes les dépendances d'une classe ou d'une fonction.
Cadre de test unitaire Python
Pour faciliter le processus de test unitaire et améliorer la qualité de votre projet, il est recommandé d'utiliser Python Unit Testing Framework. Le cadre de test unitaire comprend
- PyUnit : PyUnit prend en charge les fixtures, les cas de test, les suites de test et un test runner pour le test automatisé du code. Dans PyUnit, vous pouvez organiser les cas de test en suites avec les mêmes appareils
- Nez : Les plug-ins intégrés de Nose vous aident avec la capture de sortie, la couverture de code, les doctests, etc. La syntaxe de Nose est assez simple et réduit les obstacles à l'écriture de tests. Il étend Python unittest pour faciliter les tests.
- Doctest : Le script de test Doctest va dans docstring avec une petite fonction au bas du fichier. Doctest vous permet de tester votre code en exécutant des exemples inclus dans la documentation et en vérifiant qu'ils ont renvoyé les résultats attendus. Le cas d'utilisation de doctest est moins détaillé et ne prend pas en compte les cas particuliers. Ils sont utiles en tant que documentation expressive du cas d'utilisation principal d'un module et de ses composants.
Tests unitaires avec PyUnit
Pyunit est un port Python de JUnit. Dans le cadre de Pyunit, le module unittest contient cinq classes clés.
- Classe TestCase :La classe TestCase contient les routines de test et fournit des crochets pour créer chaque routine et nettoyer par la suite
- Classe TestSuite :Il sert de conteneur de collecte et peut posséder plusieurs objets de cas de test et plusieurs objets de suites de tests
- Classe TestLoader :Cette classe charge des cas de test et des suites définis localement ou à partir d'un fichier externe. Il émet une suite d'objets de test qui possède ces suites et ces cas
- Classe TextTestRunner :Pour exécuter les tests, il fournit une plate-forme standard pour exécuter les tests
- La classe TestResults :Il propose un conteneur standard pour les résultats des tests
Concevoir un scénario de test pour les tests Python à l'aide de PyUnit
Un test unitaire fournit une classe de base, un cas de test, qui peut être utilisé pour créer de nouveaux cas de test. Pour concevoir le cas de test, il existe trois ensembles de méthodes utilisées sont
unittest.TestCase
setUp() teardown() skipTest(aMesg:string) fail(aMesg:string) id():string shortDescription():string
Dans le premier ensemble se trouvent les crochets pré et post-test. La méthode setup() commence avant chaque routine de test, la méthode teardown() après la routine.
Le deuxième ensemble de méthodes contrôle l'exécution des tests. Les deux méthodes acceptent une chaîne de message en entrée et annulent toutes deux un test en cours. Mais la méthode skiptest() interrompt le test en cours tandis que la méthode fail() échoue complètement.
La dernière ou la troisième méthode aide à déterminer le test. La méthode id() renvoie une chaîne composée du nom de l'objet testcase et de la routine de test. Et la méthode shortDescription() renvoie le commentaire docstr au lancement de chaque routine de test.
Avantages de l'utilisation des tests unitaires Python
- Il vous aide à détecter les bogues tôt dans le cycle de développement
- Cela vous aide à écrire de meilleurs programmes
- Il se synchronise facilement avec d'autres méthodes et outils de test
- Il aura beaucoup moins de bugs
- Il est plus facile de modifier à l'avenir avec très moins de conséquences
Python
- Tutoriel de classe abstraite C # avec exemple :Qu'est-ce que l'abstraction ?
- Python String strip() Fonction avec EXAMPLE
- Python String count() avec des EXEMPLES
- Fonction Python round() avec EXEMPLES
- Fonction Python map() avec EXEMPLES
- Python Timeit() avec des exemples
- Rendement en Python Tutoriel :Exemple de générateur et rendement vs retour
- Compteur Python dans les collections avec exemple
- Index de liste Python () avec exemple