Kemahiran kawalan keadaan sempadan dalam ujian Golang
Pengenalan:
Dalam proses pembangunan perisian, ujian adalah pautan yang sangat penting. Ujian yang baik boleh membantu kami menemui kemungkinan kecacatan dan masalah, dengan itu memastikan kualiti dan kestabilan perisian. Dalam ujian, kawalan keadaan sempadan amat penting. Artikel ini akan memperkenalkan beberapa teknik untuk mengawal keadaan sempadan dalam ujian Golang, dan menggambarkannya dengan contoh kod.
1. Syarat Sempadan Biasa
Sebelum mengawal keadaan sempadan, mari kita fahami beberapa syarat sempadan biasa untuk ujian yang lebih baik.
2. Kemahiran mengawal keadaan sempadan
func CalculateAverage(numbers []int) float64 { if len(numbers) == 0 { return 0.0 } sum := 0 for _, num := range numbers { sum += num } return float64(sum) / float64(len(numbers)) }
Dalam kod di atas, kami mula-mula menyemak sama ada panjang kepingan ialah 0, dan jika ya, kembalikan 0.0 secara langsung, jika tidak, kami terus mengira jumlah semua elemen dalam kepingan dan kembali purata. Dengan cara ini kita dapat mengendalikan kes hirisan kosong dengan betul.
func TestCalculateAverage(t *testing.T) { t.Run("Test with empty slice", func(t *testing.T) { numbers := []int{} result := CalculateAverage(numbers) if result != 0.0 { t.Error("Expected 0.0, got", result) } }) t.Run("Test with positive numbers", func(t *testing.T) { numbers := []int{1, 2, 3, 4, 5} result := CalculateAverage(numbers) expected := 3.0 if result != expected { t.Error("Expected", expected, "got", result) } }) }
Dalam kod di atas, kami menggunakan kaedah t.Run() untuk mentakrifkan dua sub-ujian, satu untuk kes kepingan kosong dan satu lagi untuk kes nombor positif. Untuk setiap ujian kecil, kita boleh menulis logik yang sepadan dan menggunakan kaedah t.Error() untuk melaporkan kegagalan ujian.
func TestAccessElement(t *testing.T) { array := [10]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9} for i := 0; i <= 9; i++ { t.Run(fmt.Sprintf("Test accessing element at index %d", i), func(t *testing.T) { result := AccessElement(array, i) expected := i if result != expected { t.Error("Expected", expected, "got", result) } }) } }
Dalam kod di atas, kami menggunakan gelung for untuk lelaran ke atas indeks tatasusunan dan mentakrifkan subujian menggunakan kaedah t.Run() dalam setiap gelung. Dengan cara ini, kita boleh menguji satu siri keadaan sempadan dengan sangat mudah.
Ringkasan:
Dalam menulis ujian berkualiti tinggi, mengawal keadaan sempadan adalah sangat penting. Artikel ini memperkenalkan beberapa teknik untuk mengawal keadaan sempadan dalam ujian Golang, termasuk menggunakan pernyataan bersyarat jika, menggunakan t.Run() untuk mengklasifikasikan subujian dan menggunakan ujian nilai gelung dan sempadan. Dengan mengawal keadaan sempadan dengan betul, kami boleh meningkatkan liputan ujian dan menemui lebih banyak masalah dan kecacatan yang berpotensi. Saya harap artikel ini telah memberikan sedikit bantuan untuk anda dalam mengawal keadaan sempadan dalam ujian Golang.
Atas ialah kandungan terperinci Kemahiran mengawal keadaan sempadan dalam ujian Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!