Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menguji Hantaran Hujah dengan Betul di Golang?

Bagaimana untuk Menguji Hantaran Hujah dengan Betul di Golang?

Susan Sarandon
Lepaskan: 2024-12-07 17:34:13
asal
869 orang telah melayarinya

How to Correctly Test Argument Passing in Golang?

Menguji Penghantaran Hujah di Golang

Dalam Golang, hujah boleh dihantar ke fungsi menggunakan bendera. Untuk menguji kelulusan hujah, ujian boleh ditulis yang mensimulasikan penghantaran hujah baris arahan.

Masalahnya

Apabila menjalankan ujian berikut:

import (
    "os"
    "testing"
)

func TestArgs(t *testing.T) {
    expected := "bla"
    os.Args = []string{"-user=bla"}

    actual := passArguments()

    if actual != expected {
        t.Errorf("Test failed, expected: '%s', got:  '%s'", expected, actual)
    }
}
Salin selepas log masuk

ujian gagal dengan mesej ralat yang menunjukkan bahawa hasil yang dijangkakan ("bla") tidak sepadan dengan keputusan sebenar ("root").

Penyelesaian

Masalah timbul kerana nilai pertama dalam os.Args ialah laluan ke executable itu sendiri. Untuk membetulkannya, kepingan os.Args harus dikemas kini untuk memasukkan kedua-dua boleh laku dan argumen:

os.Args = []string{"cmd", "-user=bla"}
Salin selepas log masuk

Selain itu, os.Args ialah pembolehubah global, jadi adalah disyorkan untuk menyimpan keadaan asal dan pulihkannya selepas ujian untuk mengelakkan gangguan dengan ujian lain:

oldArgs := os.Args
defer func() { os.Args = oldArgs }()
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menguji Hantaran Hujah dengan Betul di Golang?. 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