Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Mengejek Panggilan Kaedah Struktur dalam Kes Ujian Go?

Bagaimanakah Saya Boleh Mengejek Panggilan Kaedah Struktur dalam Kes Ujian Go?

Barbara Streisand
Lepaskan: 2024-12-05 07:09:17
asal
895 orang telah melayarinya

How Can I Mock Struct Method Calls in Go Test Cases?

Panggilan Struktur Kaedah Mengejek dalam Kes Ujian Go

Dalam Go, tiada sokongan asli untuk panggilan kaedah mengejek bagi struct. Walau bagaimanapun, beberapa teknik boleh digunakan untuk mencapai kefungsian yang serupa.

Satu pendekatan adalah untuk mentakrifkan antara muka yang mewakili kaedah yang berkaitan bagi struct dan mencipta pelaksanaan olok-olok bagi antara muka tersebut. Pelaksanaan olok-olok ini kemudiannya boleh disuntik ke dalam kes ujian sebagai ganti struct sebenar.

Pertimbangkan contoh kod berikut:

type A struct {}

func (a *A) perform(url string){
    // ...
}
Salin selepas log masuk

Untuk menguji fungsi invoke() yang menggunakan perform ini () kaedah, pelaksanaan olok-olok struct A boleh dibuat:

type AMock struct {
    PerformFunc func(url string)
}

func (m *AMock) perform(url string) {
    if m.PerformFunc != nil {
        m.PerformFunc(url)
    }
}
Salin selepas log masuk

Dalam kes ujian, olok-olok boleh disuntik ke dalam fungsi invoke():

func TestInvoke(t *testing.T) {
    mock := &AMock{}
    mock.PerformFunc = func(url string) {
        // Test logic for mock behavior
    }
    invoke(mock, "example.com")
}
Salin selepas log masuk

Dengan menetapkan medan PerformFunc pada olok-olok, tingkah laku kaedah yang diejek boleh dikawal dan ditegaskan dalam ujian.

Satu lagi pendekatan untuk mengejek melibatkan penggunaan rangka kerja suntikan pergantungan yang menyokong ejekan. Ini membolehkan keupayaan mengejek yang lebih fleksibel dan serba boleh, tetapi memerlukan konfigurasi dan persediaan tambahan.

Akhirnya, kaedah yang paling sesuai untuk mengejek bergantung pada keperluan dan kekangan khusus kes ujian dan aplikasi yang sedang dibangunkan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengejek Panggilan Kaedah Struktur dalam Kes Ujian 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