Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggunakan kaedah ujian dipacu jadual dalam ujian unit Golang?

Bagaimana untuk menggunakan kaedah ujian dipacu jadual dalam ujian unit Golang?

WBOY
WBOYasal
2024-06-01 09:48:57566semak imbas

Ujian dipacu jadual memudahkan penulisan kes ujian dalam ujian unit Go dengan mentakrifkan input dan output yang dijangkakan dengan jadual. Sintaks termasuk: 1. Tentukan kepingan yang mengandungi struktur kes ujian 2. Gelung melalui kepingan dan bandingkan keputusan dengan output yang dijangkakan. Dalam kes sebenar, ujian dipacu jadual telah dilakukan pada fungsi menukar rentetan kepada huruf besar, dan ujian go digunakan untuk menjalankan ujian dan mencetak keputusan lulus.

如何在 Golang 单元测试中使用表驱动的测试方法?

Bagaimana untuk menggunakan kaedah ujian dipacu jadual dalam ujian unit Golang?

Pengujian dipacu jadual ialah kaedah ujian yang menggunakan jadual untuk mentakrifkan berbilang input dan output yang dijangkakan. Ini memudahkan dan mempercepatkan proses menulis kes ujian kerana kita hanya perlu mentakrifkan jadual itu sendiri dan bukannya menulis fungsi berasingan untuk setiap kes ujian.

Syntax

Sintaks ujian dipacu jadual adalah seperti berikut:

import "testing"

func TestTableDriven(t *testing.T) {
    tests := []struct {
        input    string
        expected string
    }{
        {"a", "A"},
        {"b", "B"},
        {"c", "C"},
    }

    for _, test := range tests {
        result := UpperCase(test.input)
        if result != test.expected {
            t.Errorf("Expected %q, got %q", test.expected, result)
        }
    }
}
  • ujian ialah kepingan struktur yang mentakrifkan input dan output yang dijangka akan diuji.
  • tests 是一个结构体切片,它定义了要测试的输入和预期输出。
  • range tests 循环遍历 tests 切片中的每个测试用例。
  • result 是要测试的函数的输出。
  • if result != test.expected 检查结果是否与预期输出匹配。

实战案例

以下是一个将字符串转换为大写的函数的表驱动的测试:

import (
    "testing"
    "strings"
)

func TestUpperCase(t *testing.T) {
    tests := []struct {
        input    string
        expected string
    }{
        {"a", "A"},
        {"b", "B"},
        {"c", "C"},
    }

    for _, test := range tests {
        result := strings.ToUpper(test.input)
        if result != test.expected {
            t.Errorf("Expected %q, got %q", test.expected, result)
        }
    }
}

要运行测试,请使用 go testujian julat bergelung melalui setiap kes ujian dalam kepingan ujian.

hasil ialah output fungsi yang akan diuji.

if result != test.expected Menyemak sama ada keputusan sepadan dengan output yang dijangkakan.

Contoh praktikal🎜🎜Berikut ialah ujian dipacu jadual bagi fungsi yang menukar rentetan kepada huruf besar:🎜
go test -v
🎜Untuk menjalankan ujian, gunakan go test:🎜
=== RUN   TestUpperCase
--- PASS: TestUpperCase (0.00s)
PASS
ok      github.com/user/pkg   0.005s
🎜Ini akan mencetak output berikut:🎜rrreee

Atas ialah kandungan terperinci Bagaimana untuk menggunakan kaedah ujian dipacu jadual dalam ujian unit 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