Maison > développement back-end > Tutoriel Python > Tests Python | Création de tests unitaires en python

Tests Python | Création de tests unitaires en python

王林
Libérer: 2023-04-11 19:37:15
avant
1791 Les gens l'ont consulté

En tant que développeur ou programmeur, chaque fois que vous écrivez du code, une chose est généralement négligée : les tests. Les tests font partie du développement et vous devez tester rigoureusement vos applications pour vous assurer qu'elles répondent aux fonctionnalités requises.

Commençons par pourquoi nous devons tester :

1. Réduire le besoin de tests manuels

Étant donné que les cas de test sont pré-écrits, il n'y a plus de vraie raison d'effectuer des tests manuels. La plupart du temps, en particulier avec les applications volumineuses, vous devez exécuter de nombreuses étapes dans votre logiciel pour tester si une fonctionnalité fonctionne. Cela peut être évité grâce à des tests. Imaginez devoir utiliser une entrée spécifique à chaque fois que vous exécutez votre application. Avec le test, cela sera saisi automatiquement à chaque exécution.

2. Permet une meilleure structure du code

La création de cas de test avant le développement est une bonne pratique. Cela vous oblige à réfléchir au système dans son ensemble avant de commencer le développement.

3. Permet des tests plus rapides à long terme

Pendant le codage, l'implémentation de la fonction peut changer, mais le résultat reste le même. Au lieu de tester manuellement une fonction lorsque son implémentation change, vous pouvez simplement implémenter des scénarios de test spécifiques pouvant exécuter plusieurs scénarios de test à la fois.

Démarrage

Nous nous concentrerons sur un type spécifique de tests, les tests unitaires. Ce type spécifique de test est utilisé pour tester de petites unités de code, telles que des fonctions ou des classes.

Pour créer des tests unitaires, nous utiliserons la bibliothèque standard python unittest. Cette méthode de création de cas de test utilise la POO (Programmation Orientée Objet) en créant une classe qui contient tous les cas de test. Cela nous permettra d'exécuter tous les cas de test de la classe en même temps.

Remarque : vous pouvez utiliser n'importe quel IDE ou éditeur de texte que vous connaissez (l'IDE python par défaut peut être utilisé). Pour ce faire, je vais démontrer l'utilisation de Visual Studio Code avec l'extension python.

Nous allons d'abord importer notre bibliothèque de tests unitaires :

import unittest
Copier après la connexion

Faites maintenant notre déclaration de classe :

class TestingClass(unittest.TestCase):
Copier après la connexion

Remarque (unittest.TestCase) est un héritage en python. Fournir des fonctionnalités à la classe.

Ajoutez la première fonction de la classe :

Tests Python | Création de tests unitaires en python

self.assertEqual est une méthode fournie par la classe précédemment héritée (unittest.TestCase). Cette méthode teste si deux variables ont la même valeur.

Ajoutez notre testeur. Voici ce qui lance notre test unitaire :

unittest.main()
Copier après la connexion

Voici à quoi devrait ressembler le code terminé :

Tests Python | Création de tests unitaires en python

Le code ci-dessus montre si 9 + 1 est égal à 11. Si vous connaissez les mathématiques de base, sachez que 9+1 = 10. Par conséquent, ce scénario de test échouera.

Sortie :

Tests Python | Création de tests unitaires en python

Vous auriez dû le deviner. ÉCHEC !

La solution est simple. Modifiez le code comme suit :

test_var = 9 + 2
Copier après la connexion

Tests Python | Création de tests unitaires en python

Résultat :

Tests Python | Création de tests unitaires en python

Test de fonctions externes

Pour tester en dehors d'une fonction, l'exemple précédent peut ne pas être réaliste. Remplaçons la valeur test_var par la valeur d'une fonction. Nous ajouterons une déclaration de fonction en haut du fichier.

Tests Python | Création de tests unitaires en python

Cette fonction ajoute deux nombres. Remplacez 9 + 2 par l'appel de fonction add(9,2) et exécutez le code.

Tests Python | Création de tests unitaires en python

Jusqu'à présent, nous n'avons implémenté qu'un seul cas de test. Chaque fonction/méthode de TestingClass (dans ce cas, les deux sont identiques) représente un scénario de test.

Ajoutons un autre cas de test test_multiple_num_addition.

Tests Python | Création de tests unitaires en python

REMARQUE : Le nom de tous les cas de test créés doit être précédé du mot "test", sinon le lanceur de test ne le reconnaîtra pas.

Votre code devrait ressembler à ceci :

Tests Python | Création de tests unitaires en python

Exécuter :

Tests Python | Création de tests unitaires en python

Cela échouera évidemment car le paramètre de fonction n'accepte que deux paramètres. Mais que se passe-t-il si nous voulons vraiment ajouter plus de nombres ?

Cela peut être résolu en modifiant la fonction d'ajout :

Tests Python | Création de tests unitaires en python

Notez l'astérisque (*) à gauche du paramètre de valeurs. Cela vous permet de saisir plusieurs paramètres et permet de stocker les valeurs sous forme de tuples.

Code avant exécution :

Tests Python | Création de tests unitaires en python

Exécution :

Tests Python | Création de tests unitaires en python

Exécution réussie !

Placer un astérisque avant la variable du paramètre de fonction est appelé paramètre non-mot-clé.

Résumé

Tenter des tests peut apporter une robustesse supplémentaire à votre code. Cela peut également changer votre façon de développer. Avoir un état d'esprit de test garantit moins de bugs en production et moins de tests manuels répétitifs pendant le développement.

*Lien original : https://medium.com/swlh/python-testing-a8156d022eef

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:51cto.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal