Wie teste ich Befehlszeilen-Flags in Go?

Ich möchte einen Komponententest, bei dem überprüft wird, ob ein bestimmtes Befehlszeilenflag in einer Aufzählung enthalten ist.

Hier ist der Code, gegen den ich Tests schreiben möchte:

var formatType string

const (
    text = "text"
    json = "json"
    hash = "hash"
)

func init() {
    const (
        defaultFormat = "text"
        formatUsage   = "desired output format"
    )

    flag.StringVar(&formatType, "format", defaultFormat, formatUsage)
    flag.StringVar(&formatType, "f", defaultFormat, formatUsage+" (shorthand)")

}

func main() {
    flag.Parse()
}

Der gewünschte Test würde nur bestehen, wenn -format einem der oben angegebenen const-Werte entspricht. Dieser Wert wäre in formatType verfügbar. Ein Beispiel für einen korrekten Aufruf wäre: program-format text

Was ist der beste Weg, um das gewünschte Verhalten zu testen?

Hinweis: Vielleicht habe ich das schlecht formuliert, aber der angezeigte Code ist nicht der Komponententest selbst, sondern der Code, gegen den ich Komponententests schreiben möchte. Dies ist ein einfaches Beispiel aus dem Tool, das ich schreibe, und ich wollte fragen, ob es eine gute Möglichkeit gibt, gültige Eingaben in das Tool zu testen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage