在Go 測試中存取日誌
在Go 測試中,驗證函數的日誌輸出可能具有挑戰性,尤其是當函數本身記錄日誌時
要擷取日誌輸出,常見的解決方案是在執行函數之前將預設日誌輸出重新導向到緩衝區正在測試。
範例:
考慮以下readByte 函數:
func readByte(/*...*/) { if err != nil { fmt.Println("ERROR") log.Print("Couldn't read first byte") return } }
要測試日誌輸出,我們可以使用以下方法在測試檔案中:
package main import ( "bytes" "testing" "github.com/stretchr/testify/assert" ) func TestReadByte(t *testing.T) { var buf bytes.Buffer log.SetOutput(&buf) defer func() { log.SetOutput(os.Stderr) }() readByte() output := buf.String() assert.Contains(t, output, "Couldn't read first byte") }
在此範例中,我們:
以上是如何在 Go 測試中擷取和驗證日誌輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!