Bagaimana untuk menulis kes ujian untuk fungsi golang?

WBOY
Lepaskan: 2024-04-26 17:06:02
asal
889 orang telah melayarinya

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.

Bagaimana untuk menulis kes ujian untuk fungsi golang?

Panduan untuk menulis kes ujian fungsi dalam Go

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:

  • Ujian Unit: Uji kelakuan terpencil bagi satu fungsi.
  • Ujian integrasi: Uji cara fungsi berinteraksi dengan komponen lain dalam sistem yang lebih besar.

2 Gunakan pakej testing Go testing

Go 语言中用于编写测试用例的标准库是 testing 包。这个包提供了一些有用的函数和类型,例如:

  • func Test(t *testing.T):定义一个测试用例。
  • t.Error():报告测试失败。
  • t.Fail():立即使测试失败。
  • t.Skip()
Pustaka standard untuk menulis kes ujian dalam bahasa Go ialah pakej testing. Pakej ini menyediakan beberapa fungsi dan jenis yang berguna, seperti:

func Test(t *testing.T): Tentukan kes ujian.

t.Error(): Laporkan kegagalan ujian.

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

4. Jalankan kes ujian

🎜🎜Anda boleh menggunakan arahan berikut untuk menjalankan kes ujian: 🎜
go test
Salin selepas log masuk
🎜🎜5. Kes pertempuran praktikal 🎜🎜🎜Pertimbangkan fungsi yang mengira jumlah elemen dalam senarai: 🎜
func sum(nums []int) int {
    sum := 0
    for _, num := range nums {
        sum += num
    }
    return sum
}
Salin selepas log masuk
🎜Berikut adalah beberapa kes ujian: 🎜
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)
        }
    }
}
Salin selepas log masuk

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!

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