Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menguji Output daripada Fungsi yang Menggunakan Log masuk Go?

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

Patricia Arquette
Patricia Arquetteasal
2024-11-22 08:18:12467semak imbas

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())
}

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!

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