In diesem Artikel werden wir uns auf eine einzige Einheit des Lebenszyklus eines Entwicklers konzentrieren: Tests. Testcode ist eine sehr nützliche Funktion für jeden Entwickler. Es ermöglicht das Finden und Behebung von Fehler, bevor Code für die Produktion bereitgestellt wird. Obwohl die Implementierung von Codetests viele Möglichkeiten und Funktionen gibt, konzentriert sich dieser Artikel auf das GO Assert -Paket.
Erste Schritte mit Tests
Bevor wir uns mit dem Paket aus dem Zeugnis eintauchen.
Der erste Schritt besteht darin, zu wissen, was Sie testen möchten. Dies könnte eine einfache Funktion für eine Sammlung von Methoden sein.
Nehmen wir ein einfaches Beispielprogramm, das es nur multipliziert, dass es um 10 eingegeben wird.
Erstellen Sie zunächst ein Verzeichnis, um Ihren Code zu speichern.
MKIDR -TestsNavigieren Sie in das Verzeichnis und erstellen Sie eine GO -Datei mit Ihrem Programm enthalten. Der Einfachheit halber nennen wir diese Datei Main.gehen
CD -TestsBearbeiten Sie die Datei mit Ihrem Texteditor und erstellen Sie Ihr Programm. Um diesem Tutorial zu folgen, können Sie den Code wie unten gezeigt hinzufügen:
Paket MainIm Beispielprogramm haben wir eine Funktion, die eine Ganzzahleingabe übernimmt und die Ganzzahl multipliziert mit 10 zurückgibt.
Speichern und schließen Sie die Datei.
Der nächste Schritt besteht darin, Test für das obige Programm zu erstellen. Dazu müssen wir eine Datei im selben Verzeichnis mit dem _test -Suffix erstellen. Dies gibt dem GO -Testmodul mit, dass diese Datei eine Testsuite für das Programm im Verzeichnis enthält.
Da wir einen Test für die Hauptstufe erstellen wollen.GO -Programm, wir werden die Testdatei als:
Berühren Sie Main_test.gehenIn der Testdatei können wir Testanweisungen für unser Programm erstellen.
Da wir die Verwendung des Assert -Pakets verwenden möchten, müssen wir das Test und das Assert -Paket importieren.
Sie können die Importe als:
PaketErstellen Sie als nächstes eine Testfunktion, die Sie für das Hauptprogramm testen können. Wir können wie gezeigt Testanweisungen erstellen:
Paket MainIm obigen Programm erstellen wir eine Testfunktion, die einen Test durchführt.T -Objekt. Das Testframework ermöglicht es, die Funktion zu schreiben.
In der Funktion verwenden wir das Assert -Paket, um zu überprüfen. Wenn die Multiplikationsfunktion die Ganzzahl 10 übernimmt und einen Wert von 100 zurückgibt, besteht sie durch den Test bestehen.
Speichern Sie die Testdatei und führen Sie den Test mit dem Befehl aus:
Gehen Sie TestDer obige Befehl sollte die Testdatei aufnehmen und die konfigurierten Tests ausführen.
Ein Beispielausgang ist wie gezeigt:
=== rennen testmultiplyWie Sie aus der obigen Ausgabe bemerken werden, besteht die Funktion den Test.
Ändern wir den Wert der Funktion, um einen Fehleranweis zu veranschaulichen. Ändern Sie beispielsweise den dritten Parameter der Testfunktion auf einen falschen Wert. Zum Beispiel:
FunctestMultiply (t *testing.T)In diesem Beispiel geben wir dem Programm mit, dass die Funktion fehlschlägt.
Hinweis: Denken Sie daran, dass die Testfunktion falsch ist.
Wenn wir den Test durchführen, sollten wir einen Fehler erhalten, als:
=== rennen testmultiplyDie obige Ausgabe zeigt einen fehlgeschlagenen Test.
Golang Assert
Jetzt, da wir die Grundlagen des Testens aus dem Weg haben, lassen Sie uns unseren Fokus auf das Assert -Paket verlagern. In unserem vorherigen Beispiel haben wir die gleiche Methode verwendet, um zu überprüfen, ob die Funktion den erwarteten Wert zurückgibt. Das Assert -Paket bietet jedoch eine Vielzahl von Testwerkzeugen und -methoden, um Code -Tests zu vereinfachen.
Lassen Sie uns einige weitere Beispiele untersuchen, um die Funktionalität des Assert -Pakets zu veranschaulichen.
Golang -Testungleichheit
Wir können das Assert -Paket verwenden, um die Ungleichheit mithilfe der NOREQUAL () -Methode zu überprüfen. Die Funktionssyntax ist wie gezeigt:
func noMesqual (t testing, erwartet, tatsächliche Schnittstelle , msgandargs… Schnittstelle ) bool
Die Funktion nimmt ein t.Testobjekt, den Erwarteten und der tatsächliche Wert und eine Druckmeldung. Es prüft, ob der erwartete und der tatsächliche Wert nicht gleich sind. Wenn der Test stimmt, wird der Test ansonsten gescheitert.
Ein Beispiel ist wie gezeigt:
FunctestNotequal (t *testing.T)Der obige Code überprüft, ob die Werte nicht gleich sind. Ein Beispielausgang ist wie gezeigt:
=== rennen testNotequalGolang -Test HTTP -Statuscode
Wir können die Methode httpStatusCode () verwenden, um zu überprüfen, ob ein Handler den angegebenen Statuscode zurückgibt.
Nehmen wir an, wir haben einen HTTP -Server, wenn wir eine Anfrage zur Rückgabestatuscode von 200 stellen. Wir werden nicht tief in die Erstellung eines HTTP -Servers in Go eintauchen. Schauen Sie sich unser Tutorial zu diesem Thema an, um mehr zu erfahren.
Ein Beispiel für den HTTP -Server ist wie gezeigt:
Paket MainWir können einen Test erstellen, um zu überprüfen, ob die Funktion HTTP -Handler den angegebenen Statuscode zurückgibt. In unserem Fall ist die HTTP -Handlerfunktion die Sayhello -Methode. Die Testfunktion ist wie gezeigt:
func testStatuscode (t *testing.T)Im obigen Beispiel erstellen wir eine Testfunktion, um das Senden einer GET -Anforderung an den Server mit der HTTP -Handlerfunktion Sayhello zu überprüfen. Gibt den Statuscode von 200 zurück.
Der Code gibt zurück:
=== rennen testStatuscodeGolang -Testpanik
Ein weiterer Test, den wir ausführen können, besteht darin, zu überprüfen, ob eine bestimmte Funktion Panik. Wir können die Behauptung verwenden.Panicks () Methode wie gezeigt:
functestpanic (t *testing.T)Im obigen Beispiel überprüfen wir, ob die Funktion, wenn sie in Panik gerät.
Golang überprüfen, ob ein Verzeichnis besteht
Wenn Sie testen möchten, ob ein bestimmtes Verzeichnis in einem bestimmten Pfad vorhanden ist, können Sie die Direxists () -Methode verwenden.
Zum Beispiel:
FunctestDir (t *testing.T)Abschluss
Dies war eine umfassende Anleitung zum Einstieg mit Tests in der Go -Programmiersprache. Das Testen wird stark in Multi-Entwicklerprojekten verwendet. Daher ist es außergewöhnlich, zu lernen, wie man Tests durchführt.
Das Assert -Paket bietet noch viel mehr als die in diesem Tutorial gezeigten. Die Dokumentation erweitert dies.
https: // pkg.gehen.dev/github.com/Stretchr/Zeugnis/Assert