Maison > Article > développement back-end > 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!