Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mengolok-olok Kaedah Struktur dalam Kes Ujian Go Tanpa Antara Muka?
Kaedah Struktur Mengejek dalam Kes Ujian Go
Dalam Go, panggilan kaedah mengejek sesuatu struct boleh dicapai tanpa memasukkan antara muka ke dalam kod sumber . Begini caranya:
Mengejek Struktur dan Kaedah Contoh
Pertimbangkan struct dan kaedah berikut:
type A struct {} func (a *A) perfom(string){ ... ... .. }
Mengejek dalam Kes Ujian
Untuk mengejek kaedah pelaksanaan untuk ujian kes:
type Performer interface { perform(string) }
type AMock struct {} func (a *AMock) perform(string) { // Mocked behavior } type A struct {} func (a *A) perform(string) { // Real implementation }
func invoke(url string, p Performer) { out := p.perfom(url) ... ... }
func TestInvokeWithMock(t *testing.T) { var amok = &AMock{} invoke("url", amok) // Verify mock behavior (e.g., assert it was called with the correct argument) }
func TestInvokeWithReal(t *testing.T) { var a = &A{} invoke("url", a) // No need for verification since it's the real implementation }
Lain-lain Pilihan
Perpustakaan seperti [testify/mock](https://godoc.org/github.com/stretchr/testify/mock) menyediakan keupayaan mengejek yang lebih mantap, membolehkan anda mengawal tingkah laku olok-olok dan sahkan panggilan kaedah.
Atas ialah kandungan terperinci Bagaimana untuk Mengolok-olok Kaedah Struktur dalam Kes Ujian Go Tanpa Antara Muka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!