Heim > Backend-Entwicklung > Golang > Wie teste ich Funktionen im Hauptpaket in Go?

Wie teste ich Funktionen im Hauptpaket in Go?

Susan Sarandon
Freigeben: 2024-11-28 16:20:12
Original
923 Leute haben es durchsucht

How to Test Functions in the Main Package in Go?

Hauptpaketfunktionen testen

Im Bereich Go-Tests kann es zu Herausforderungen kommen, wenn man versucht, auf die im Hauptpaket definierten Funktionen zuzugreifen Testdateien. Dies liegt an der inhärenten Isolation von Paketen in Go.

Bedenken Sie das folgende häufige Problem:

// main.go
package main

func foo() string {
    return "Foo"
}
Nach dem Login kopieren
// main_test.go
package main

import "testing"

func TestFoo(t *testing.T) {
    t.Error(foo()) // Undefined: foo
}
Nach dem Login kopieren

Versuch, foo() aus dem Hauptpaket in main_test.go zu testen führt zu einem Fehler, da auf die Funktion foo() im untergeordneten Paket nicht zugegriffen werden kann.

Um dieses Problem zu beheben, besteht ein Ansatz darin, ein separates Paket für zu erstellen Funktionen, die Sie testen möchten. Zum Beispiel:

// util.go
package util

func Foo() string {
    return "Foo"
}
Nach dem Login kopieren
// main.go
package main

import (
    "fmt"
    "log"
    "util"
)

func main() {
    fmt.Println(util.Foo())
}
Nach dem Login kopieren
// util_test.go
package util_test

import (
    "testing"
    "util"
)

func TestFoo(t *testing.T) {
    t.Error(util.Foo()) // Now accessible
}
Nach dem Login kopieren

Indem Sie Ihren Code auf diese Weise strukturieren, können Sie die Testfunktionalität von Ihrem Hauptpaket isolieren.

Allerdings, wenn Sie dies ausdrücklich benötigen Testfunktionen, die direkt im Hauptpaket definiert sind, müssen Sie daran denken, Tests für alle Dateien gleichzeitig auszuführen. Mit dem Befehl go test können Sie mehrere Dateien angeben:

go test *.go
Nach dem Login kopieren

Stellen Sie außerdem sicher, dass Ihre Testfunktionen in der Datei _test.go korrekt benannt sind, die TestXXX-Namenskonvention einhalten und einen Zeiger auf Testing übergeben. T als Argument.

Das obige ist der detaillierte Inhalt vonWie teste ich Funktionen im Hauptpaket in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage