Wie teste ich die Funktionen des Hauptpakets in Golang?

Ich möchte einige Funktionen testen, die in meinem Hauptpaket enthalten sind, aber meine Tests scheinen nicht in der Lage zu sein, auf diese Funktionen zuzugreifen.

Meine main.go-Beispieldatei sieht folgendermaßen aus:

package main

import (
    "log"
)

func main() {
    log.Printf(foo())
}

func foo() string {
    return "Foo"
}

und meine main_test.go-Datei sieht so aus:

package main

import (
    "testing"
)

func Foo(t testing.T) {
    t.Error(foo())
}

wenn ich rennego test main_test.go Ich bekomm

# command-line-arguments
.\main_test.go:8: undefined: foo
FAIL    command-line-arguments [build failed]

Wie ich verstehe, konnte ich die Testdatei auch dann nicht importieren, wenn ich sie an einen anderen Ort verschoben und aus der main.go-Datei importiert habe, da es sich um @ handelpackage main.

Was ist die richtige Art, solche Tests zu strukturieren? Soll ich einfach alles aus dem @ entfernmain package hat eine einfache Hauptfunktion, mit der Sie alles ausführen und dann die Funktionen in ihrem eigenen Paket testen können, oder gibt es eine Möglichkeit, diese Funktionen beim Testen aus der Hauptdatei aufzurufen?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage