Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk menguji fungsi Golang menggunakan rangka kerja ujian unit?

Bagaimana untuk menguji fungsi Golang menggunakan rangka kerja ujian unit?

WBOY
WBOYasal
2024-04-16 11:00:01853semak imbas

Gunakan rangka kerja ujian unit untuk ujian unit dalam Go: import pakej ujian. Tulis fungsi ujian unit yang diawali dengan Ujian. Gunakan fungsi penegasan seperti assertEqual() untuk mengesahkan keputusan ujian. Jalankan ujian unit (go test) untuk mengesahkan ketepatan fungsi.

如何使用单元测试框架对 Golang 函数进行测试?

Cara menguji fungsi Go menggunakan rangka kerja ujian unit

Ujian unit ialah amalan pembangunan perisian penting yang mengesahkan ketepatan fungsi atau kaedah tunggal. Dalam Go, ujian unit adalah sangat mudah menggunakan rangka kerja ujian unit seperti pakej testing. testing 包)进行单元测试非常简单。

安装单元测试框架

testing 包是 Go 标准库的一部分。要使用它,请在你的项目中导入 testing 包:

import "testing"

编写单元测试

每个单元测试都是一个以 Test 为前缀的函数。它接受一个指针 *testing.T 作为参数,该参数用于报告测试结果和记录失败信息。

基本的单元测试函数如下所示:

func TestAdd(t *testing.T) {
    result := Add(1, 2)
    if result != 3 {
        t.Errorf("Add(1, 2) = %d; want 3", result)
    }
}

断言

testing 包提供了一系列断言函数,用于验证测试结果。常用的断言包括:

  • assertEqual()
  • assertNotEqual()
  • assertNil()
  • assertError()

实战案例

考虑一个计算两个数字之和的 Add() 函数:

func Add(a, b int) int {
    return a + b
}

我们可以编写一个单元测试来验证此函数:

import "testing"

func TestAdd(t *testing.T) {
    tests := []struct {
        a, b, want int
    }{
        {1, 2, 3},
        {0, 0, 0},
        {-1, -1, -2},
    }

    for _, test := range tests {
        result := Add(test.a, test.b)
        if result != test.want {
            t.Errorf("Add(%d, %d) = %d; want %d", test.a, test.b, result, test.want)
        }
    }
}

运行测试

要运行单元测试,请使用 go test 命令。它将查找并运行项目中所有 Test*

Pasang rangka kerja ujian unit

Pakej ujian ialah sebahagian daripada pustaka standard Go. Untuk menggunakannya, import pakej ujian ke dalam projek anda: 🎜
go test
🎜🎜Menulis ujian unit🎜🎜🎜Setiap ujian unit ialah ujian unit yang diawali dengan fungsi Ujian. Ia menerima penunjuk *testing.T sebagai parameter, yang digunakan untuk melaporkan keputusan ujian dan merekodkan maklumat kegagalan. 🎜🎜Fungsi ujian unit asas adalah seperti berikut: 🎜
PASS
ok  my_project/my_package  1.730s
🎜🎜Assertion🎜🎜🎜 Pakej ujian menyediakan satu siri fungsi penegasan untuk mengesahkan keputusan ujian. Penegasan yang biasa digunakan termasuk: 🎜
  • assertEqual()
  • assertNotEqual()
  • assertNil ()
  • assertError()
🎜🎜Kes praktikal🎜🎜🎜Pertimbangkan yang mengira jumlah dua nombor Fungsi Add(): 🎜rrreee🎜Kita boleh menulis ujian unit untuk mengesahkan fungsi ini: 🎜rrreee🎜🎜Jalankan ujian🎜🎜🎜Untuk menjalankan ujian unit, gunakan go test perintah. Ia akan mencari dan menjalankan semua fungsi Test* dalam projek. 🎜rrreee🎜Jika ujian lulus, ia akan mengeluarkan keputusan berikut: 🎜rrreee🎜 Jika tidak, ia akan melaporkan ujian yang gagal, termasuk mesej ralat. 🎜

Atas ialah kandungan terperinci Bagaimana untuk menguji fungsi Golang menggunakan rangka kerja ujian unit?. 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