


Programmation serveur Python : développement piloté par les tests avec pytest
Python, en tant que langage de programmation puissant et populaire, est très adapté à la programmation côté serveur. L'un des aspects les plus importants de la programmation côté serveur est le test, car quelle que soit la perfection de votre application, elle doit toujours être testée pour garantir sa stabilité et son exactitude.
C'est le moment d'utiliser la méthode Test Driven Development (TDD). TDD signifie écrire des cas de test avant d'écrire réellement le code. Avec cette approche, vous pouvez écrire plus facilement des applications stables et fiables, car les cas de test peuvent vous aider à trouver et à corriger les bogues. L'un des frameworks de test les plus respectés est pytest.
Dans cet article, nous discuterons du processus de développement piloté par les tests à l'aide de pytest.
Tout d’abord, construisons un exemple. Nous allons créer une application Web capable d'obtenir la définition d'un mot et de la récupérer en fonction d'une partie du discours.
Dans cette application, nous devons écrire les classes et méthodes suivantes :
Classe Word - représente un mot, contient une partie du discours et une définition.
class Word: def __init__(self, word, part_of_speech, definition): self.word = word self.part_of_speech = part_of_speech self.definition = definition
Classe Dictionnaire - Représente un dictionnaire avec des méthodes pour ajouter et interroger des définitions de mots.
class Dictionary: def __init__(self): self.words = [] def add_word(self, word, part_of_speech, definition): new_word = Word(word, part_of_speech, definition) self.words.append(new_word) def search(self, query): results = [] for word in self.words: if query in word.definition: results.append(word) return results
Maintenant que nous avons ces deux classes, commençons à écrire des cas de test.
Nous utiliserons pytest pour écrire des cas de test, pytest est un framework de test Python simple et flexible.
Tout d’abord, nous devons installer pytest. Vous pouvez installer pytest en utilisant pip :
pip install pytest
Ensuite, créons un fichier test_dictionary.py dans notre dossier de projet. Le code de ce fichier contiendra les cas de test que nous utiliserons pour tester les classes Dictionary et Word.
Nous allons d’abord rédiger un cas de test pour tester notre classe Word. Nous utiliserons l'instruction assert pour tester si les arguments de chaque mot sont stockés correctement.
class TestWord: def test_init(self): w = Word('test', 'noun', 'this is a test') assert w.word == 'test' assert w.part_of_speech == 'noun' assert w.definition == 'this is a test'
Nous utilisons l'instruction assert pour vérifier si le mot, la partie du discours et la définition sont correctement définis comme paramètres d'entrée du mot.
Maintenant, nous allons écrire quelques cas de test pour tester notre classe Dictionnaire.
class TestDictionary: def test_add_word(self): d = Dictionary() d.add_word('apple', 'noun', 'a fruit') assert len(d.words) == 1 assert d.words[0].word == 'apple' assert d.words[0].part_of_speech == 'noun' assert d.words[0].definition == 'a fruit' def test_search(self): d = Dictionary() d.add_word('apple', 'noun', 'a fruit') d.add_word('banana', 'noun', 'another fruit') d.add_word('carrot', 'noun', 'a vegetable') results = d.search('fruit') assert len(results) == 2 assert results[0].word == 'apple' assert results[1].word == 'banana'
Avec ces cas de test, nous pouvons tester si notre classe Dictionary ajoute correctement les mots et renvoie correctement les résultats lors de l'utilisation de la méthode de recherche.
Maintenant, nous exécutons les cas de test pour voir s'ils réussissent. Dans le terminal, utilisez la commande suivante pour exécuter pytest :
pytest
Si tous les tests réussissent, vous devriez voir un résultat similaire à celui-ci :
============================== test session starts ============================== platform linux -- Python 3.x.y, pytest-6.x.y, py-1.x.y, pluggy-1.x.y rootdir: /path/to/project collected 3 items test_dictionary.py ... [100%] =============================== 3 passed in 0.01s ===============================
Cela signifie que nos cas de test ont réussi et que nos classes Dictionnaire et Word fonctionnent normalement.
En utilisant pytest pour le développement piloté par les tests, nous pouvons écrire des cas de test avant d'écrire du code, ce qui peut nous aider à garantir la qualité et la fiabilité du code. pytest est un framework de test très populaire, facile à utiliser et puissant, et peut répondre à la plupart des besoins de tests de programmation côté serveur Python.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

De nombreux développeurs de sites Web sont confrontés au problème de l'intégration de Node.js ou des services Python sous l'architecture de lampe: la lampe existante (Linux Apache MySQL PHP) a besoin d'un site Web ...

Solution aux problèmes d'autorisation Lors de la visualisation de la version Python dans Linux Terminal Lorsque vous essayez d'afficher la version Python dans Linux Terminal, entrez Python ...

Lorsque vous utilisez Scapy Crawler, la raison pour laquelle les fichiers de stockage persistants ne peuvent pas être écrits? Discussion Lorsque vous apprenez à utiliser Scapy Crawler pour les robots de données, vous rencontrez souvent un ...

Précision avec Python: Source de sablier Dessin graphique et vérification d'entrée Cet article résoudra le problème de définition variable rencontré par un novice Python dans le programme de dessin graphique de sablier. Code...

Python Process Pool gère les demandes TCP simultanées qui font coincé le client. Lorsque vous utilisez Python pour la programmation réseau, il est crucial de gérer efficacement les demandes TCP simultanées. ...

Explorez profondément la méthode de visualisation de Python Functools.Partial Objet dans Functools.Partial en utilisant Python ...

Choix de la bibliothèque de développement d'applications de bureau multiplateforme Python De nombreux développeurs Python souhaitent développer des applications de bureau pouvant s'exécuter sur Windows et Linux Systems ...

De nombreux développeurs s'appuient sur PYPI (PythonPackageIndex) ...
