Fungsi ujian dalam Golang: Buat fail ujian yang berakhir dengan _test.go. Isytiharkan fungsi ujian bernama TestXXX, dengan XXX ialah nama fungsi yang sedang diuji. Gunakan penegasan untuk mengesahkan bahawa hasil yang dijangkakan sepadan dengan keputusan sebenar. Tetapkan titik putus dan gunakan penyahpepijat untuk menyahpepijat kegagalan ujian. Gunakan alat ujian dan liputan dipacu jadual untuk meningkatkan kecekapan ujian.
Pengujian dan Penyahpepijatan Fungsi Golang
Di Golang, ujian adalah amalan penting untuk memastikan kebolehpercayaan dan ketepatan kod. Tutorial ini akan membimbing anda tentang cara menggunakan rangka kerja ujian terbina dalam Golang untuk menguji dan menyahpepijat fungsi.
Menguji fungsi
Untuk menguji fungsi, anda perlu mencipta fail baharu yang berakhir dengan _test.go
. Fail ini terletak dalam pakej yang sama dengan fungsi yang sedang diuji. Dalam fail ujian, isytiharkan fungsi ujian menggunakan fungsi TestXXX
bagi pakej testing
, dengan XXX
ialah nama fungsi yang sedang diuji. Contohnya: _test.go
结尾的新文件。该文件位于与被测函数相同的包中。在测试文件中,使用 testing
包的 TestXXX
函数声明一个测试函数,其中 XXX
是被测函数的名称。例如:
// my_function_test.go package mypackage import ( "testing" ) func TestAdd(t *testing.T) { // ... }
断言
在测试函数中,使用断言来验证预期结果与实际结果是否一致。testing
包提供了多种断言函数,例如:
t.Equal(a, b)
:验证 a
和 b
是否相等t.ErrorIs(err, expectedError)
:验证 err
和 expectedError
是否是相同的错误t.True(cond)
:验证 cond
为 true
实战案例
假设你有一个名为 add
的函数,该函数接受两个数字参数并返回它们的和。你可以编写以下测试函数来测试 add
// my_function_test.go import ( "testing" ) func TestAdd(t *testing.T) { tests := []struct { a, b int want int }{ {1, 2, 3}, {3, 4, 7}, {-1, -2, -3}, } for _, tt := range tests { got := add(tt.a, tt.b) if got != tt.want { t.Errorf("add(%d, %d) = %d, want %d", tt.a, tt.b, got, tt.want) } } }
Assertion
Dalam fungsi ujian, gunakan penegasan untuk mengesahkan sama ada keputusan yang dijangkakan adalah konsisten dengan keputusan sebenar. Pakejtesting
menyediakan pelbagai fungsi penegasan, seperti:
t.Equal(a, b)
: Sahkan a
dan Sama ada b adalah samat.ErrorIs(err, expectedError)
: Sahkan sama ada err
dan expectedError
adalah sama error
t.True(cond)
: Sahkan bahawa cond
adalah true
add
yang menerima dua argumen berangka dan mengembalikan jumlahnya. Anda boleh menulis fungsi ujian berikut untuk menguji fungsi add
: 🎜rrreee🎜🎜Penyahpepijatan🎜🎜🎜Untuk kes penyahpepijatan di mana ujian gagal, anda boleh menggunakan penyahpepijat dengan menetapkan titik putus dalam kod sumber. Dalam IDE seperti VSCode, anda boleh menetapkan titik putus dengan mengklik kanan pada baris dalam kod dan memilih "Tetapkan/Alih Keluar Titik Putus." Apabila kod dijalankan dalam penyahpepijat, ia akan berhenti seketika pada titik putus, membolehkan anda memeriksa pembolehubah dan jejak tindanan. 🎜🎜🎜Petua🎜🎜🎜🎜Gunakan ujian dipacu jadual untuk memudahkan ujian beberapa set input. 🎜🎜Gunakan alat liputan untuk memastikan kod ujian merangkumi logik fungsi yang mencukupi. 🎜🎜Sepadukan kod ujian dengan sistem penyepaduan berterusan untuk menjalankan ujian secara automatik apabila kod berubah. 🎜🎜Atas ialah kandungan terperinci Menguji dan menyahpepijat fungsi Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!