Um die von einer zu testenden Funktion generierten Protokolle zu überprüfen, ist es wichtig, sie zu erfassen und zu überprüfen. Dies kann erreicht werden, indem die Ausgabe umgeleitet und mit den erwarteten Werten verglichen wird.
Im bereitgestellten Beispiel druckt die readByte-Funktion die Protokollmeldungen auf die Standardausgabe. Um diese Nachrichten im Test zu erfassen, können wir einen bytes.Buffer wie unten gezeigt verwenden:
package main import ( "bytes" "fmt" "io" "log" "os" "testing" ) func readByte(/*...*/) { // ... if err != nil { fmt.Println("ERROR") log.Print("Couldn't read first byte") return } // ... } func TestReadByte(t *testing.T) { var buf bytes.Buffer log.SetOutput(&buf) defer func() { log.SetOutput(os.Stderr) }() readByte() t.Log(buf.String()) }
Erklärung:
Indem Sie den Inhalt von buf untersuchen, können Sie überprüfen, ob die erwarteten Protokolle von der readByte-Funktion generiert wurden. Mit diesem Ansatz können Sie die Protokollausgabe testen, ohne den Code der zu testenden Funktion zu ändern.
Das obige ist der detaillierte Inhalt vonWie erfasst und überprüft man Protokolle in Go-Tests?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!