Terdapat tiga teknik untuk menyahpepijat dan menguji fungsi Go: menggunakan dlv penyahpepijat untuk melangkah melalui kod, memeriksa pembolehubah dan mengubah suai keadaan kod. Uji fungsi dengan menulis fungsi ujian dalam fail _test.go dan mengesahkan keputusan menggunakan fungsi penegasan. Dalam pertempuran sebenar, anda boleh menggunakan dlv untuk menyahpepijat pelaksanaan fungsi, dan menggunakan rangka kerja ujian dan fungsi penegasan untuk mengesahkan ketepatan fungsi.
Menyahpepijat dan menguji fungsi Go
Pengenalan
Bahasa Go menyediakan alat yang berkuasa untuk membantu pembangun nyahpepijat dan menguji fungsi. Artikel ini akan memperkenalkan teknik yang berbeza untuk menyahpepijat dan menguji fungsi Go.
Penyahpepijatan
Penyahpepijat Go (dlv) ialah alat berkuasa yang boleh digunakan untuk melangkah melalui kod, memeriksa pembolehubah dan mengubah suai keadaan kod.
1. Pasang dan gunakan dlv
pergi pasang github.com/go-delve/delve/cmd/dlv@latest
go install github.com/go-delve/delve/cmd/dlv@latest
dlv debug -- <function_name></function_name>
2. 调试命令
n
:单步进入函数s
:单步进入函数并暂停l
:列出当前作用域中的变量p
:打印指定变量的值cont
:继续执行测试
Go 测试框架提供了测试函数和程序的能力。
1. 创建测试文件
测试文件以 _test.go
为后缀,位于与要测试的代码相同的包中。
2. 编写测试函数
测试函数以 Test
开头,后跟被测试的函数名。它们遵循以下格式:
func Test<FunctionName>(t *testing.T) { // 测试代码 }
3. 断言
断言用于验证测试结果。Go 测试框架提供了诸如 Equal()
, NotEqual()
, True()
, False()
Fungsi nyahpepijat:
2 Arahan nyahpepijat
_test.go
dan terletak dalam pakej yang sama dengan kod yang akan diuji. 🎜🎜🎜2. Tulis fungsi ujian 🎜🎜🎜Fungsi ujian bermula dengan func Sum(a int, b int) int { return a + b }
Equal()
, NotEqual()
, True()
, False()
fungsi penegasan. 🎜🎜🎜4. Kes Praktikal 🎜🎜🎜Pertimbangkan fungsi Go berikut: 🎜import ( "testing" ) func TestSum(t *testing.T) { type testCase struct { a, b, expected int } testCases := []testCase{ {1, 2, 3}, {-1, 5, 4}, {10, 10, 20}, } for _, tc := range testCases { result := Sum(tc.a, tc.b) if result != tc.expected { t.Errorf("Expected %v, got %v", tc.expected, result) } } }
Atas ialah kandungan terperinci Penyahpepijatan dan ujian fungsi golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!