Inhaltsverzeichnis
So schreiben Sie einen grundlegenden Unit -Test
Tabellenbetriebene Tests: Eine sauberere Methode zum Testen mehrerer Fälle
Ausführen spezifischer Tests und mehr Ausgabe erhalten
Heim Backend-Entwicklung Golang Was ist Tests in Go und wie schreibe ich Unit -Tests?

Was ist Tests in Go und wie schreibe ich Unit -Tests?

Jun 20, 2025 am 08:41 AM
go Unit -Tests

Die Unit-Tests von GO werden über das integrierte Testpaket implementiert, und Entwickler müssen nur die Namensschreiberspezifikation befolgen, um Tests zu schreiben und auszuführen. Zu den spezifischen Schritten gehören: 1. Erstellen einer Testdatei, die mit _test.go endet; 2. Schreiben Sie eine Testfunktion, die mit dem Test beginnt. 3.. Melden Sie einen Fehler mit T.Errorf (); 4. Führen Sie den Test mit dem GO -Testbefehl aus. 5. Testen Sie mehrere Anwendungsfälle mit Tabellenfahrer; 6. Führen Sie einen bestimmten Test mit dem -Run -Flag aus und erhalten Sie eine detaillierte Ausgabe mit dem -V -Flag. Beim Testen der Funktion hinzufügen können Sie beispielsweise die Testadd -Funktion in math_test.go schreiben und mehrere Eingangssätze und Ausgabe durch die Struktur zur Überprüfung definieren. Zusätzlich können Sie den angegebenen Test über den GO -Test -Run Testadd ausführen oder detaillierte Protokollinformationen über Go Test -v anzeigen.

Was ist Tests in Go und wie schreibe ich Unit -Tests?

Das Testen in GO ist eine integrierte Funktion, mit der Entwickler Tests direkt neben ihrem Code schreiben und ausführen können, ohne dass Bibliotheken von Drittanbietern erforderlich sind. Unit -Tests in GO ist unkompliziert - es verwendet das testing und folgt einer einfachen Namenskonvention für Testfunktionen.

So schreiben Sie einen grundlegenden Unit -Test

Um einen Unit -Test in Go zu schreiben, erstellen Sie eine Funktion in einer _test.go -Datei. Der Funktionsname muss mit Test beginnen, gefolgt vom Namen der getesteten Funktion oder Methode.

Wenn Sie beispielsweise eine Funktion namens Add in einer Datei namens math.go haben, schreiben Sie ihren Test in einer Datei namens math_test.go . Hier erfahren Sie, wie ein grundlegender Test aussehen könnte:

 Paket Main

"Tests" importieren "

func testadd (t *testing.t) {
    Ergebnis: = add (2, 3)
    erwartet: = 5

    Wenn Ergebnis! = erwartet {
        T.Errorf ("erwartete %d, %d", erwartet, Ergebnis)
    }
}
  • Stellen Sie sicher, dass Ihre Testdateien in _test.go enden
  • Importieren Sie das testing
  • Verwenden Sie t.Errorf() (oder ähnliche Methoden), um Fehler zu melden

Wenn Sie bereit sind, den Test auszuführen, verwenden Sie die Befehlszeile:

 Gehen Sie Test

Wenn alles vergeht, werden Sie eine PASS sehen. Wenn etwas fehlschlägt, zeigt Sie genau, welcher Test fehlgeschlagen ist und warum.

Tabellenbetriebene Tests: Eine sauberere Methode zum Testen mehrerer Fälle

GO-Entwickler verwenden häufig Tabellensteuerungstests, um mehrere Eingangs-Output-Kombinationen in einer einzelnen Testfunktion zu überprüfen. Dies hält die Tests präzise und leicht zu warten.

Hier ist ein Beispiel, das Add Funktionsfunktion verwendet:

 func testadd (t *testing.t) {
    Tests: = [] struct {
        A, B int
        erwarten int
    } {
        {2, 3, 5},
        {0, 0, 0},
        {-1, 1, 0},
        {100, 200, 300},
    }

    Für _, tt: = Bereichstests {
        Ergebnis: = add (tt.a, tt.b)
        Wenn Ergebnis! = tt.exect {
            T.Errorf ("Add ( %d, %d): erwartete %d, Got %d", tt.a, tt.b, tt.exect, Ergebnis)
        }
    }
}

Dieser Ansatz erleichtert es einfach:

  • Fügen Sie schnell weitere Testfälle hinzu
  • Sehen Sie, was auf einen Blick getestet wird
  • Verwenden Sie die gleiche Assertionslogik in allen Fällen wieder

Viele GO -Projekte bevorzugen diesen Stil, weil er die Doppelarbeit verringert und die Lesbarkeit verbessert.

Ausführen spezifischer Tests und mehr Ausgabe erhalten

Wenn Sie viele Tests haben und nur einen ausführen möchten, können Sie das Flag -run verwenden, gefolgt von einem regulären Ausdruck, der dem Testnamen entspricht:

 Gehen Sie Test -Run Testadd

Fügen t.Log() das -v fmt.Println() hinzu:

 Gehen Sie testen -v

Sie können auch Flags kombinieren:

 Gehen Sie test -v -Run Testadd

Diese Optionen sind praktisch, wenn Sie fehlgeschlagene Tests debuggen oder wenn Sie an einem bestimmten Teil Ihrer Codebasis arbeiten.


Das sind die Grundlagen des Schreibens und Ausführens von Tests in Go. Es ist nicht kompliziert, aber es gibt einige kleine Regeln, die Sie erinnern müssen, wie die Benennung von Konventionen und wo Sie Ihre Testdateien platzieren sollen.

Das obige ist der detaillierte Inhalt vonWas ist Tests in Go und wie schreibe ich Unit -Tests?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

PHP-Tutorial
1510
276
Was sind einige Best Practices für die Anmeldung in Go? Was sind einige Best Practices für die Anmeldung in Go? Aug 04, 2025 pm 04:48 PM

Unter Verwendung strukturierter Protokollierung, Hinzufügen von Kontext, Steuerung der Protokollpegel, Vermeiden sensibler Daten, Verwendung konsistenter Feldnamen, korrekten Protokollierungsfehlern, der Berücksichtigung der Leistung, der zentralen Überwachung von Protokollen und der Vereinheitlichung von Konfigurationen sind Best Practices in der Erreichung einer effizienten Protokollierung. Erstens erleichtern strukturierte Protokolle im JSON-Format (z. B. die Verwendung von Uber-Go/Zap oder RS/Zerolog) das Analyse und Integrieren von Elch, Datadog und anderen Tools für das Maschinen. Zweitens wird die Protokollverfolgbarkeit durch Anfordern von Kontextinformationen wie ID und Benutzer -ID verbessert und kann über context.context oder http Middleware injiziert werden. Drittens verwenden Sie Debug, Info, Warnen, Fehlerniveaus vernünftigerweise und arbeiten Sie durch Umgebungsvariablen.

Wie kann man einen Go -Service anmutig beenden? Wie kann man einen Go -Service anmutig beenden? Aug 05, 2025 pm 08:21 PM

Usesignal.notify () tolistenforsigint/sigtermandtriggershutdown; 2.runtheHttpserverinagoroutineAndblocktilasignalisReced;

Wie man die aktuelle Zeit in Go bekommt Wie man die aktuelle Zeit in Go bekommt Aug 06, 2025 am 11:28 AM

Usetime.now () TogetTheScurrentLoclecimeasatime.TimeObject; 2.FormatThE-UNTERTHEFORMATMETHODWITHLAYOUTS LIEBEN "2006-01-0215: 04: 05";

So analysieren Sie XML -Daten in Go So analysieren Sie XML -Daten in Go Aug 05, 2025 pm 07:24 PM

Das Parsen von XML-Daten ist in GO sehr einfach. Verwenden Sie einfach das integrierte Codierungs-/XML-Paket. 1. Definieren Sie eine Struktur mit XML -Tag, um XML -Elemente und -attribute wie XML: "Name" entsprechende untergeordnete Elemente, XML: "Contact> E -Mail" zu verarbeiten, XML: "ID, Attr" liest Attribute; 2. Verwenden Sie XML.unmarshal, um XML -Zeichenfolgen in Strukturen zu analysieren. 3. Verwenden Sie für Dateien os.open, um sie zu öffnen und über XML.NewDeCoder zu dekodieren, was zum Streaming der Verarbeitung großer Dateien geeignet ist. 4. Bei der Verarbeitung doppelter Elemente in der Struktur

Wie profilieren Sie den Code für Leistung? Wie profilieren Sie den Code für Leistung? Aug 05, 2025 am 08:50 AM

Die GO-Code-Leistungsanalyse kann über das integrierte PPROF-Tool implementiert werden. Importieren Sie zunächst den Debug -Endpunkt, um das \ _ "net/http/pprof" zu aktivieren; 1. Für HTTP -Dienste starten Sie die PPROF -Schnittstelle von Localhost: 6060 im Programm; 2. Verwenden Sie Gotoolpprof http: // localhost: 6060/debug/pprof/profile? Sekunden = 30, um 30 Sekunden CPU -Leistungsdaten zu sammeln; 3.. Analysieren Sie die Speicherzuweisung über gotoolpprof http: // localhost: 6060/debug/pprof/heap; 4. Laufen aktivieren

Erweiterte Scherz- und Vitest -Muster für effektive Einheitentests Erweiterte Scherz- und Vitest -Muster für effektive Einheitentests Aug 06, 2025 am 12:23 AM

Vermeiden Sie über MockingByusing-partialMocksandspiestotestinteractionSwithoutreplacingEnireMPlementationen, mockingonlyexternaldependencielikeapis.2. Usefaketimer (JEST.USEFAKETIMERSININ JEST, VI.USEFAKETIMERSINVITEST) TOCONTROLASYNCHONOULGICINVOLVIGINGIMETIMEUMOUMOU

So erstellen und verwenden Sie benutzerdefinierte Fehlertypen in Go So erstellen und verwenden Sie benutzerdefinierte Fehlertypen in Go Aug 11, 2025 pm 11:08 PM

In GO kann das Erstellen und Gebrauch von benutzerdefinierten Fehlertypen die Ausdruckskraft und Debugierbarkeit des Fehlerbehandlung verbessern. Die Antwort besteht darin, einen benutzerdefinierten Fehler zu erstellen, indem eine Struktur definiert wird, die die METHOR () () implementiert. Beispielsweise enthält ValidationError Feld- und Nachrichtenfelder und gibt formatierte Fehlerinformationen zurück. Der Fehler kann dann in der Funktion zurückgegeben werden, wodurch bestimmte Fehlertypen durch Typbehandlungen oder Fehler erfasst werden. Sie können auch Verhaltensmethoden wie Iscritical zu benutzerdefinierten Fehlern hinzufügen, die für Szenarien geeignet sind, für die strukturierte Daten, differenzierte Verarbeitung, Bibliotheksexport oder API -Integration erforderlich sind. In einfachen Fällen können Fehler. Neue und vordefinierte Fehler wie ErrnotFound für vergleichbar verwendet werden

Wie kompilieren Sie eine Go-Anwendung? Wie kompilieren Sie eine Go-Anwendung? Aug 06, 2025 am 05:52 AM

Cross-compilingagoAnlicationisStraInightForwardusedBuilt-Insupportviagoosandgoarch.1.SetGoosForthetargetoperatingsystem (z

See all articles