Menguji dan menyahpepijat fungsi Golang

WBOY
Lepaskan: 2024-04-15 15:36:01
asal
548 orang telah melayarinya

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.

Menguji dan menyahpepijat fungsi Golang

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) {
    // ...
}
Salin selepas log masuk

断言

在测试函数中,使用断言来验证预期结果与实际结果是否一致。testing 包提供了多种断言函数,例如:

  • t.Equal(a, b):验证 ab 是否相等
  • t.ErrorIs(err, expectedError):验证 errexpectedError 是否是相同的错误
  • t.True(cond):验证 condtrue

实战案例

假设你有一个名为 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)
        }
    }
}
Salin selepas log masuk

Assertion

Dalam fungsi ujian, gunakan penegasan untuk mengesahkan sama ada keputusan yang dijangkakan adalah konsisten dengan keputusan sebenar. Pakej testing 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
  • Kes praktikal
Andaikan anda mempunyai fail dinamakan fungsi 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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!