Untuk mengesahkan log yang dijana oleh fungsi yang sedang diuji, adalah penting untuk menangkap dan memeriksanya. Ini boleh dicapai dengan mengubah hala output dan membandingkannya dengan nilai yang dijangkakan.
Dalam contoh yang disediakan, fungsi readByte mencetak mesej log ke output standard. Untuk menangkap mesej ini dalam ujian, kita boleh menggunakan bait. Penampan seperti yang ditunjukkan di bawah:
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()) }
Penjelasan:
Dengan memeriksa kandungan buf, anda boleh mengesahkan sama ada log yang dijangka dijana oleh fungsi readByte. Pendekatan ini membolehkan anda menguji output log tanpa mengubah suai kod fungsi yang sedang diuji.
Atas ialah kandungan terperinci Bagaimana untuk Menangkap dan Memeriksa Log dalam Ujian Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!