Rumah > Artikel > pembangunan bahagian belakang > Ujian unit dengan Go generik
Menggunakan generik Go untuk ujian unit boleh mencipta fungsi ujian universal yang sesuai untuk pelbagai jenis, meningkatkan kebolehgunaan semula, kebolehselenggaraan dan kebolehbacaan kod ujian. Kelebihan khusus termasuk: Kebolehgunaan semula: Fungsi ujian generik boleh digunakan untuk berbilang jenis, mengurangkan pertindihan kod. Kebolehselenggaraan: Uruskan fungsi ujian generik secara berpusat untuk memastikan kod bersih. Kebolehbacaan: Sintaks generik meningkatkan kebolehbacaan dan kebolehfahaman kod.
Gunakan Go generik untuk ujian unit
Go 1.18 memperkenalkan ciri generik, membolehkan pembangun mencipta kod yang lebih versatil dan fleksibel. Perkara yang sama berlaku untuk ujian unit, yang memudahkan kebolehgunaan semula dan kebolehselenggaraan kod ujian anda.
Fungsi Ujian Generik
Menggunakan generik, kami boleh mencipta fungsi ujian yang berfungsi pada pelbagai jenis koleksi. Sebagai contoh, kita boleh mentakrifkan fungsi assertLess
generik untuk sebarang jenis yang melaksanakan antara muka comparable
: comparable
接口的类型定义一个泛型的 assertLess
函数:
func assertLess[T comparable](t *testing.T, got, want T) { if got >= want { t.Errorf("got %v, want less than %v", got, want) } }
实战案例
以下是一个使用 assertLess
测试 math/big.Int
package big import ( "math/big" "testing" ) func TestIntLess(t *testing.T) { tests := []struct { got, want *big.Int }{ {got: big.NewInt(1), want: big.NewInt(2)}, {got: big.NewInt(5), want: big.NewInt(3)}, } for _, tt := range tests { assertLess(t, tt.got, tt.want) } }
Kes praktikal
Berikut ialah penggunaanmath/big.Int
: rrreee
Kebolehbacaan: Sintaks generik meningkatkan kebolehbacaan dan kefahaman kod ujian.
🎜Kesimpulan🎜🎜🎜Go generik menyediakan keupayaan berkuasa untuk ujian unit, membolehkan kami menulis kod ujian yang lebih serba boleh dan boleh digunakan semula. Dengan menggabungkan generik dengan sintaks yang jelas dan ringkas, kami boleh meningkatkan kualiti dan kebolehselenggaraan kod ujian kami. 🎜Atas ialah kandungan terperinci Ujian unit dengan Go generik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!