Menulis kes ujian berfungsi dalam Go melibatkan penggunaan pakej ujian, yang menyediakan fungsi untuk menentukan kes ujian (func Test) dan melaporkan kegagalan (t.Error). Ujian unit menguji fungsi individu secara berasingan, manakala ujian integrasi memfokuskan pada interaksi dengan komponen lain. Contoh kes ujian menunjukkan cara menggunakan pakej ujian untuk mentakrifkan fungsi ujian, mentakrifkan kes ujian input dan output, mengesahkan keputusan dan menjalankannya menggunakan arahan go test.
Apabila menulis kod Go, menulis kes ujian adalah penting untuk memastikan kod itu mantap dan betul. Di bawah ialah panduan untuk menulis kes ujian fungsi, termasuk contoh praktikal menggunakan bahasa Go.
1. Pengujian Unit vs Pengujian Penyepaduan
Apabila bercakap tentang fungsi pengujian, terdapat dua jenis utama:
2 Gunakan pakejtesting
Gotesting
包
Go 语言中用于编写测试用例的标准库是testing
包。这个包提供了一些有用的函数和类型,例如:
func Test(t *testing.T)
:定义一个测试用例。t.Error()
:报告测试失败。t.Fail()
:立即使测试失败。t.Skip()
testing
. Pakej ini menyediakan beberapa fungsi dan jenis yang berguna, seperti:
t.Fail()
: Gagal ujian serta-merta.t.Skip()
: Langkau ujian semasa.
3. Tulis kes ujian
Berikut ialah contoh menulis kes ujian fungsi:package main import "testing" // myFunc 是要测试的函数 func myFunc(x int) int { return x * x } // TestMyFunc 测试 myFunc 函数 func TestMyFunc(t *testing.T) { // 定义测试用例 tests := []struct { input int expected int }{ {0, 0}, {1, 1}, {2, 4}, {3, 9}, {-1, 1}, } for _, tc := range tests { // 调用正在测试的函数 result := myFunc(tc.input) // 验证结果 if result != tc.expected { t.Errorf("Test failed. Expected: %d, Got: %d", tc.expected, result) } } }
4. Jalankan kes ujian
Anda boleh menggunakan arahan berikut untuk menjalankan kes ujian:go test
func sum(nums []int) int { sum := 0 for _, num := range nums { sum += num } return sum }
func TestSum(t *testing.T) { tests := []struct { input []int expected int }{ {[]int{}, 0}, {[]int{1}, 1}, {[]int{1, 2}, 3}, {[]int{1, 2, 3}, 6}, {[]int{-1, 0, 1}, 0}, } for _, tc := range tests { result := sum(tc.input) if result != tc.expected { t.Errorf("Test failed. Expected: %d, Got: %d", tc.expected, result) } } }
Atas ialah kandungan terperinci Bagaimana untuk menulis kes ujian untuk fungsi golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!