editor php Yuzai akan memperkenalkan kepada anda cara membuat objek contoh tersedia untuk digunakan dalam semua ujian. Apabila melakukan ujian unit, kita selalunya perlu mencipta objek contoh dan menggunakannya semula dalam berbilang kes ujian. Untuk mengelakkan masalah mencipta objek berulang kali, kita boleh mencipta objek contoh sebelum ujian bermula dan menyimpannya sebagai harta kelas dengan menggunakan kaedah setUp(). Dengan cara ini, kita boleh mengakses objek contoh ini dalam semua kaedah ujian, dengan itu meningkatkan kebolehgunaan semula kod dan kecekapan ujian. Seterusnya, mari kita lihat kaedah pelaksanaan khusus.
Saya sedang menulis ujian komponen untuk perkhidmatan http. Saya mempunyai kelas pelari ujian yang mengandungi beberapa struktur berguna dan fungsi yang dikongsi (terutamanya "membuat panggilan http" dan "membandingkan struktur json"). Kelas pelari ujian perlu mempunyai domain yang diekstrak daripada envvars untuk menghantar panggilan http. Daripada mendapatkan domain daripada pembolehubah persekitaran setiap kali saya membuat panggilan http, saya lebih suka menghuraikannya sekali dan menetapkannya dalam contoh kelas pelari ujian dan kemudian menyediakan contoh itu untuk semua fungsi ujian saya.
Andaikan tandatangan yang dijangkakan bagi fungsi ujian ialah func TestXxx(t *testing.T) {...}
Bagaimanakah saya boleh menyediakan contoh ini untuk ujian saya?
Kod:
Gunakan pembolehubah peringkat pakej untuk menyimpan nilai. Mulakan nilai dalam fungsi pengakses. Gunakan sync.Once untuk memastikan permulaan selesai sekali.
type Helper struct { message string } var ( helper *Helper helperOnce sync.Once ) func getHelper() *Helper { helperOnce.Do(func() { helper = &Helper{"Hello"} }) return helper } func TestFirst(t *testing.T) { h := getHelper() t.Log(h.message) } func TestSecond(t *testing.T) { h := getHelper() t.Log(h.message) }
https://www.php.cn/link/50d758cc9ab8bb51177b071d370caac2
Atas ialah kandungan terperinci Bagaimana untuk menjadikan satu objek contoh tersedia untuk semua ujian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!