Apabila menulis ujian Go, mungkin terdapat keadaan di mana anda ingin mencetak maklumat untuk tujuan penyahpepijatan. Walau bagaimanapun, hanya memanggil fmt.Println dalam fungsi ujian tidak menghasilkan output yang boleh dilihat.
Secara lalai, output daripada pernyataan fmt.Println dalam ujian ditindas. Untuk memaparkan output sedemikian, anda mesti menggunakan kaedah .Log atau .Logf yang disediakan oleh struktur testing.T.
Serupa dengan fmt.Print dan fmt.Printf , .Log dan .Logf membolehkan anda mencetak output berformat. Sebagai contoh, daripada menggunakan:
func TestPrintSomething(t *testing.T) { fmt.Println("Say hi") }
Anda harus menggunakan:
func TestPrintSomething(t *testing.T) { t.Log("Say hi") }
Walaupun menggunakan .Log, output mungkin tidak kelihatan melainkan anda memberikan bendera -v (verbosity) semasa menjalankan ujian go. Bendera ini boleh ditentukan menggunakan sintaks berikut:
go test -v your_test_file.go
Dengan menambahkan bendera -v, output daripada .Penyataan Log akan dipaparkan pada konsol.
Pernyataan cetakan fmt.X sememangnya berfungsi dalam ujian. Walau bagaimanapun, output mereka biasanya tidak dipaparkan di lokasi yang dijangkakan kerana keputusan ujian diproses oleh infrastruktur ujian Go sebelum dicetak. Kaedah .Log, sebaliknya, direka khusus untuk memaparkan output berformat dalam persekitaran ujian dan boleh dikawal menggunakan bendera verbosity.
Atas ialah kandungan terperinci Bagaimanakah Saya Mencetak Maklumat Penyahpepijatan dalam Ujian Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!