Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Mencetak Mesej Nyahpepijat dengan Amanah dalam Ujian Go?

Bagaimanakah Saya Boleh Mencetak Mesej Nyahpepijat dengan Amanah dalam Ujian Go?

Susan Sarandon
Susan Sarandonasal
2024-12-13 17:26:10556semak imbas

How Can I Reliably Print Debug Messages in Go Tests?

Cara Mencetak Mesej dengan Berkesan dalam Ujian Go

Semasa ujian dalam Go, ia boleh berguna untuk mencetak mesej untuk tujuan penyahpepijatan. Walau bagaimanapun, menggunakan fmt.Println tidak selalu menghasilkan output yang dijangkakan. Sebaliknya, kaedah berikut menyediakan pilihan pencetakan yang lebih dipercayai apabila bekerja dengan ujian.

Pengujian.T dan Kaedah Pengelogan.B:

Kedua-dua ujian.T dan ujian. B struct menyediakan kaedah pengelogan berikut:

  • .Log: Serupa ke fmt.Cetak
  • .Logf: Serupa dengan fmt.Printf

Kaedah ini direka khusus untuk digunakan dalam ujian dan memastikan mesej yang dicetak adalah sesuai dikendalikan.

Contoh:

func TestPrintSomething(t *testing.T) {
    t.Log("Say hi") // Prints "Say hi" using the .Log method
}

Output Ujian dengan Bendera -v:

Penyata cetakan fmt.X standard memang boleh bekerja dalam ujian. Walau bagaimanapun, output mereka mungkin tidak dipaparkan dengan serta-merta pada skrin. Untuk melihat output, bendera "-v" (verbosity) mesti diluluskan untuk pergi ujian.

go test -v

Dengan bendera "-v", ujian akan mencetak mesej log untuk lulus dan gagal ujian.

Nota:

Kaedah .Ralat ujian.T juga boleh digunakan untuk cetak mesej. Walau bagaimanapun, ia bertujuan untuk melaporkan ralat dan akan menandakan ujian sebagai gagal. Kaedah .Log menyediakan pilihan yang lebih bersih dan sesuai untuk pencetakan bermaklumat tanpa menjejaskan keputusan ujian.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencetak Mesej Nyahpepijat dengan Amanah dalam Ujian Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn