Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Tutorial amali pengujian unit fungsi golang

Tutorial amali pengujian unit fungsi golang

PHPz
PHPzasal
2024-04-26 18:18:02790semak imbas

Kaedah ujian unit bahasa Go: import pakej ujian dan pakej yang sedang diuji. Tentukan fungsi ujian bermula dengan "Ujian". Tentukan kes ujian, termasuk parameter dan keputusan yang dijangkakan. Ulangi kes ujian, panggil fungsi dan bandingkan keputusan sebenar dengan keputusan yang dijangkakan. Sekiranya terdapat perbezaan, ujian pencetus gagal.

Tutorial amali pengujian unit fungsi golang

Tutorial praktikal tentang ujian unit fungsi Go

Ujian unit adalah bahagian yang amat diperlukan dalam pembangunan perisian, ia boleh membantu kami memastikan ketepatan kod dan mengurangkan kecacatan. Dalam Go, anda boleh menulis ujian unit menggunakan pakej testing terbina dalam. testing 包编写单元测试。

代码示例

假设我们有一个 greetPackage 包,其中包含一个名为 Greet 的函数,该函数接受一个名字参数并返回一条问候语。

package greetPackage

import "fmt"

func Greet(name string) string {
    return fmt.Sprintf("Hello, %s!", name)
}

我们可以使用 testing 包编写一个单元测试来测试 Greet 函数的功能。

package greetPackage_test

import (
    "testing"

    "github.com/example/myproject/greetPackage"
)

func TestGreet(t *testing.T) {
    tests := []struct {
        name     string
        expected string
    }{
        {"Alice", "Hello, Alice!"},
        {"Bob", "Hello, Bob!"},
    }

    for _, test := range tests {
        actual := greetPackage.Greet(test.name)
        if actual != test.expected {
            t.Errorf("Greet(%s) = %s; expected %s", test.name, actual, test.expected)
        }
    }
}

运作原理

  • 步骤 1:引入必需的包。我们需要导入 testing 包和正在测试的包 (greetPackage)。
  • 步骤 2:定义测试函数。测试函数必须以 "Test" 开头,并接受一个 *testing.T 参数。
  • 步骤 3:定义测试用例。我们使用 tests 变量定义一个测试用例切片,其中每个用例包含要测试的参数 (name) 和预期的结果 (expected)。
  • 步骤 4:遍历测试用例并运行测试。我们使用 for 循环依次遍历测试用例,并调用 greetPackage.Greet 函数。
  • 步骤 5:检查实际结果。我们将 greetPackage.Greet 函数的实际结果 (actual) 与预期结果 (expected) 进行比较,如果不同,则引发一个 t.Error
Contoh Kod

Andaikan kita mempunyai pakej greetPackage yang mengandungi fungsi yang dipanggil Greet yang menerima parameter bernama dan mengembalikan salam.

go test -v github.com/example/myproject/greetPackage

Kita boleh menggunakan pakej testing untuk menulis ujian unit untuk menguji kefungsian fungsi Greet.

PASS
ok  github.com/example/myproject/greetPackage  0.004s

Cara ia berfungsi🎜🎜
  • 🎜Langkah 1: Perkenalkan pakej yang diperlukan. 🎜Kami perlu mengimport pakej testing dan pakej yang sedang diuji (greetPackage). 🎜
  • 🎜Langkah 2: Tentukan fungsi ujian. 🎜Fungsi ujian mesti bermula dengan "Ujian" dan menerima parameter *testing.T. 🎜
  • 🎜Langkah 3: Tentukan kes ujian. 🎜Kami menggunakan pembolehubah ujian untuk mentakrifkan kepingan kes ujian, di mana setiap kes mengandungi parameter yang akan diuji (nama) dan hasil yang dijangkakan (dijangka kod> ). 🎜
  • 🎜Langkah 4: Gelung kes ujian dan jalankan ujian. 🎜Kami menggunakan gelung for untuk mengulangi kes ujian mengikut turutan dan memanggil fungsi greetPackage.Greet. 🎜
  • 🎜Langkah 5: Semak keputusan sebenar. 🎜Kami membandingkan hasil sebenar (sebenar) fungsi greetPackage.Greet dengan hasil yang dijangkakan (dijangka), dan jika ia berbeza, naikkan t.Error. 🎜🎜🎜🎜Jalankan ujian🎜🎜🎜Jalankan ujian dengan menjalankan arahan berikut di terminal: 🎜rrreee🎜Jika ujian berjaya, ia akan mengeluarkan mesej berikut: 🎜rrreee

Atas ialah kandungan terperinci Tutorial amali pengujian unit fungsi golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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