Heim >Backend-Entwicklung >Golang >Wie teste ich Funktionen im Hauptpaket 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" }
// main_test.go package main import "testing" func TestFoo(t *testing.T) { t.Error(foo()) // Undefined: foo }
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" }
// main.go package main import ( "fmt" "log" "util" ) func main() { fmt.Println(util.Foo()) }
// util_test.go package util_test import ( "testing" "util" ) func TestFoo(t *testing.T) { t.Error(util.Foo()) // Now accessible }
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
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!