Heim  >  Artikel  >  Backend-Entwicklung  >  Wie verwende ich die tabellengesteuerte Testmethode beim Golang-Unit-Testen?

Wie verwende ich die tabellengesteuerte Testmethode beim Golang-Unit-Testen?

WBOY
WBOYOriginal
2024-06-01 09:48:57588Durchsuche

Tabellengesteuertes Testen vereinfacht das Schreiben von Testfällen beim Go-Unit-Testen, indem Eingaben und erwartete Ausgaben mit Tabellen definiert werden. Die Syntax umfasst: 1. Definieren Sie ein Segment, das die Testfallstruktur enthält. 2. Durchlaufen Sie das Segment und vergleichen Sie die Ergebnisse mit der erwarteten Ausgabe. Im konkreten Fall wurde ein tabellengesteuerter Test für die Funktion zum Konvertieren von Zeichenfolgen in Großbuchstaben durchgeführt, und go test wurde verwendet, um den Test auszuführen und das bestandene Ergebnis auszugeben.

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

Wie verwende ich die tabellengesteuerte Testmethode beim Golang-Unit-Test?

Tabellengesteuertes Testen ist eine Testmethode, die eine Tabelle verwendet, um mehrere Eingaben und erwartete Ausgaben zu definieren. Dies vereinfacht und beschleunigt das Schreiben von Testfällen, da wir nur die Tabelle selbst definieren müssen, anstatt für jeden Testfall eine separate Funktion zu schreiben.

Syntax

Die tabellengesteuerte Testsyntax lautet wie folgt:

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)
        }
    }
}
  • tests ist ein Strukturabschnitt, der die zu testende Eingabe und die erwartete Ausgabe definiert.
  • 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 testrange tests durchläuft jeden Testfall im tests-Slice.

result ist die Ausgabe der zu testenden Funktion.

if result != test.expected Prüft, ob das Ergebnis mit der erwarteten Ausgabe übereinstimmt.

Praktisches Beispiel🎜🎜Hier ist ein tabellengesteuerter Test einer Funktion, die einen String in Großbuchstaben umwandelt:🎜
go test -v
🎜Um den Test auszuführen, verwenden Sie go test:🎜
=== RUN   TestUpperCase
--- PASS: TestUpperCase (0.00s)
PASS
ok      github.com/user/pkg   0.005s
🎜Dadurch wird die folgende Ausgabe gedruckt:🎜rrreee

Das obige ist der detaillierte Inhalt vonWie verwende ich die tabellengesteuerte Testmethode beim Golang-Unit-Testen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn