Cara Menguji Output daripada Fungsi yang Menggunakan Log Masuk Go Tests
Apabila menguji fungsi yang menggunakan mekanisme pengelogan seperti fmt.Println( ) atau log.Print(), ia menjadi perlu untuk mengakses output yang dihasilkan oleh fungsi tersebut dalam ujian.
Untuk mencapai ini, anda boleh mengikuti langkah berikut:
Dalam fail ujian anda, seperti readbyte_test.go, gunakan bytes.Buffer dan log.SetOutput() untuk mengubah hala output fungsi pengelogan kepada penimbal:
import ( "bytes" "log" "os" "testing" ) func TestReadByte(t *testing.T) { var buf bytes.Buffer log.SetOutput(&buf) defer func() { log.SetOutput(os.Stderr) }() readByte() t.Log(buf.String()) }
Ingat untuk memulihkan output log kepada os.Stderr dalam menangguhkan fungsi untuk mengelakkan sebarang kemungkinan gangguan dengan ujian lain atau kod berikutnya.
Dengan memanggil readByte() dan kemudian mengelog kandungan penimbal menggunakan t.Log(), anda boleh memeriksa output sebenar yang dijana oleh fungsi dalam ujian. Teknik ini membolehkan anda mengesahkan mesej ralat yang dijangkakan atau sebarang maklumat log lain tanpa mengubah suai kod fungsi itu sendiri.
Atas ialah kandungan terperinci Bagaimana untuk Menguji Output daripada Fungsi yang Menggunakan Log masuk Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!