Bagaimana untuk Menguji Output daripada Fungsi yang Menggunakan Log masuk Go?

Patricia Arquette
Lepaskan: 2024-11-22 08:18:12
asal
417 orang telah melayarinya

How to Test Output from Functions that Use Logging in Go?

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())
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan