Heim >Backend-Entwicklung >Python-Tutorial >Python-Serverprogrammierung: Testgetriebene Entwicklung mit Pytest
Python eignet sich als leistungsstarke und beliebte Programmiersprache sehr gut für die serverseitige Programmierung. Einer der wichtigsten Aspekte der serverseitigen Programmierung ist das Testen, denn egal wie perfekt Ihre Anwendung ist, sie muss immer getestet werden, um ihre Stabilität und Korrektheit sicherzustellen.
Dies ist die Zeit, die Test Driven Development (TDD)-Methode anzuwenden. TDD bedeutet, Testfälle zu schreiben, bevor der Code tatsächlich geschrieben wird. Mit diesem Ansatz können Sie leichter stabile und zuverlässige Anwendungen schreiben, da Testfälle Ihnen dabei helfen können, Fehler zu finden und zu beheben. Eines der angesehensten Test-Frameworks ist Pytest.
In diesem Artikel besprechen wir den Prozess der testgetriebenen Entwicklung mit Pytest.
Lassen Sie uns zunächst ein Beispiel erstellen. Wir werden eine Webanwendung erstellen, die die Definition eines Wortes abrufen und basierend auf einer Wortart abrufen kann.
In dieser Anwendung müssen wir die folgenden Klassen und Methoden schreiben:
Wortklasse – stellt ein Wort dar, enthält Wortarten und Definitionen.
class Word: def __init__(self, word, part_of_speech, definition): self.word = word self.part_of_speech = part_of_speech self.definition = definition
Dictionary-Klasse – Stellt ein Wörterbuch mit Methoden zum Hinzufügen und Abfragen von Wortdefinitionen dar.
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
Da wir nun diese beiden Klassen haben, beginnen wir mit dem Schreiben von Testfällen.
Wir werden Pytest verwenden, um Testfälle zu schreiben. Pytest ist ein einfaches und flexibles Python-Testframework.
Zuerst müssen wir Pytest installieren. Sie können pytest mit pip installieren:
pip install pytest
Als nächstes erstellen wir eine test_dictionary.py-Datei in unserem Projektordner. Der Code in dieser Datei enthält die Testfälle, die wir zum Testen der Klassen Dictionary und Word verwenden werden.
Wir werden zunächst einen Testfall schreiben, um unsere Word-Klasse zu testen. Wir werden die Assert-Anweisung verwenden, um zu testen, ob die Argumente für jedes Wort korrekt gespeichert sind.
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'
Wir verwenden die Assert-Anweisung, um zu prüfen, ob Wort, Wortart und Definition korrekt als Eingabeparameter des Wortes festgelegt sind.
Jetzt werden wir einige Testfälle schreiben, um unsere Dictionary-Klasse zu testen.
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'
Mit diesen Testfällen können wir testen, ob unsere Wörterbuchklasse Wörter korrekt hinzufügt und bei Verwendung der Suchmethode korrekte Ergebnisse zurückgibt.
Jetzt führen wir die Testfälle durch, um zu sehen, ob sie erfolgreich sind. Verwenden Sie im Terminal den folgenden Befehl, um pytest auszuführen:
pytest
Wenn alle Tests erfolgreich sind, sollten Sie eine Ausgabe ähnlich der folgenden sehen:
============================== 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 ===============================
Dies bedeutet, dass unsere Testfälle bestanden wurden und unsere Dictionary- und Word-Klassen im normalen Betrieb sind.
Durch die Verwendung von Pytest für die testgetriebene Entwicklung können wir Testfälle schreiben, bevor wir Code schreiben, was uns dabei helfen kann, die Qualität und Zuverlässigkeit des Codes sicherzustellen. pytest ist ein sehr beliebtes Testframework, das einfach zu verwenden und leistungsstark ist und die meisten Anforderungen an serverseitige Python-Programmiertests erfüllen kann.
Das obige ist der detaillierte Inhalt vonPython-Serverprogrammierung: Testgetriebene Entwicklung mit Pytest. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!