Mengakses Log dalam Go Tests
Dalam ujian Go, mengesahkan output log fungsi boleh menjadi mencabar, terutamanya apabila fungsi itu sendiri log ralat secara langsung.
Untuk menangkap output log, penyelesaian biasa ialah mengubah hala output log lalai ke penimbal sebelum melaksanakan fungsi yang sedang diuji.
Contoh:
Pertimbangkan fungsi readByte berikut:
func readByte(/*...*/) { if err != nil { fmt.Println("ERROR") log.Print("Couldn't read first byte") return } }
Untuk menguji output log, kita boleh menggunakan pendekatan berikut dalam fail ujian:
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") }
Dalam contoh ini , kita:
Atas ialah kandungan terperinci Bagaimana untuk Menangkap dan Mengesahkan Output Log dalam Ujian Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!