Ich möchte einige Funktionen testen, die in meinem Hauptpaket enthalten sind, aber meine Tests scheinen nicht auf diese Funktionen zugreifen zu können.Wie testen Sie die wichtigsten Paketfunktionen in Golang?
Meine Probe main.go Datei wie folgt aussieht:
package main
import (
"log"
)
func main() {
log.Printf(foo())
}
func foo() string {
return "Foo"
}
und meine main_test.go Datei wie folgt aussieht:
package main
import (
"testing"
)
func Foo(t testing.T) {
t.Error(foo())
}
wenn ich go test main_test.go
betreibe ich
# command-line-arguments
.\main_test.go:8: undefined: foo
FAIL command-line-arguments [build failed]
Wie bekommen Ich verstehe, auch wenn ich die Testdatei an anderer Stelle verschoben und versucht habe, aus der main.go-Datei zu importieren, konnte ich nicht importieren es ist, da es package main
ist.
Wie ist die korrekte Strukturierung solcher Tests? Sollte ich einfach alles aus dem main
Paket entfernen, als eine einfache Hauptfunktion, um alles auszuführen und dann die Funktionen in ihrem eigenen Paket zu testen, oder gibt es eine Möglichkeit für mich, diese Funktionen während des Testens aus der Hauptdatei aufzurufen?
Es gibt eine gute Video-Einführung in das Testpaket in diesem Video (bei 3m30s Start) [https://youtu.be/XCsL89YtqCs?t=3m30s] (https://youtu.be/XCsL89YtqCs?t=3m30s) – Aaron
Ihre main() -Funktion (und idealerweise Ihr Pakethaupt als Ganzes) sollte nicht getestet werden: Es sollte ein "dummer" Endpunkt für eine Bibliothek oder Bibliotheken sein . Testen Sie diese. – elithrar