Dalam ujian unit fungsi Go, terdapat dua strategi utama untuk pengendalian ralat: 1. Wakilkan ralat sebagai nilai khusus jenis ralat, yang digunakan untuk menegaskan nilai yang dijangkakan 2. Gunakan saluran untuk menghantar ralat kepada fungsi ujian , yang sesuai untuk menguji kod serentak. Dalam kes praktikal, gunakan strategi nilai ralat untuk memastikan fungsi mengembalikan 0 untuk input negatif.
Ujian unit ialah langkah penting untuk memastikan keteguhan dan kebolehpercayaan kod anda. Dalam Go, ujian unit boleh dilakukan menggunakan pakej testing
, yang mengandungi beberapa strategi untuk mengendalikan ralat. testing
包来执行单元测试,其中包含处理错误的几种策略。
Go 中有两种处理错误的主要策略:
1. 错误值
将错误表示为 error
Terdapat dua strategi utama untuk mengendalikan ralat dalam Go:
1 Nilai ralat
Mewakili ralat sebagai nilai khusus jenisfunc TestMyFunction(t *testing.T) { err := myFunction() if err != nil { t.Errorf("myFunction returned an unexpected error: %v", err) } }
2 Saluran Ralat
🎜🎜Gunakan saluran untuk menghantar ralat untuk menguji fungsi. Ini berguna untuk menguji kod serentak, kerana berbilang ralat boleh diperhatikan pada masa yang sama: 🎜func TestMyConcurrentFunction(t *testing.T) { done := make(chan error) go func() { done <- myConcurrentFunction() }() select { case err := <-done: if err != nil { t.Errorf("myConcurrentFunction returned an unexpected error: %v", err) } case <-time.After(time.Second): t.Errorf("myConcurrentFunction did not complete within the timeout") } }
func sum(numbers []int) int { total := 0 for _, num := range numbers { if num < 0 { return 0 } total += num } return total }
func TestSum(t *testing.T) { tests := []struct { input []int result int }{ {[]int{1, 2, 3}, 6}, {[]int{0, 0, 0}, 0}, {[]int{-1, 0, 1}, 0}, } for _, test := range tests { result := sum(test.input) if result != test.result { t.Errorf("sum(%v) returned %d, expected %d", test.input, result, test.result) } } }
Atas ialah kandungan terperinci Ralat mengendalikan strategi untuk ujian unit fungsi Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!