Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich Golang-Funktionen testen und abdecken?

Wie kann ich Golang-Funktionen testen und abdecken?

WBOY
WBOYOriginal
2024-04-27 13:36:02837Durchsuche

In Go sind Tests und Abdeckung von entscheidender Bedeutung für die Aufrechterhaltung eines stabilen und zuverlässigen Codes. Zum Testen wird eine Funktion geschrieben, die mit „Test“ beginnt und Zusicherungen enthält, um die erwartete Ausgabe der Funktion zu überprüfen. Verwenden Sie beim Ausführen von Tests den Befehl go test. Um die Abdeckung zu messen, können Sie den Befehl go test -coverprofile=coverage.out verwenden, um ein Abdeckungsprofil zu generieren. Um den Abdeckungsbericht anzuzeigen, verwenden Sie den Befehl go tool cover -html=coverage.out, der im Browser anzeigt, welche Codezeilen nicht ausgeführt wurden.

Wie kann ich Golang-Funktionen testen und abdecken?

Testen und Abdeckung von Go-Funktionen

In Go sind Tests und Abdeckung von entscheidender Bedeutung für die Aufrechterhaltung eines stabilen und zuverlässigen Codes. Dieses Tutorial führt Sie Schritt für Schritt durch das Einrichten und Ausführen von Tests für Ihre Go-Funktionen.

Richten Sie den Test ein

Erstellen Sie zunächst eine Datei mit der Endung _test.go und legen Sie sie in dem Verzeichnis ab, in dem sich die Funktion befindet, die Sie testen möchten. _test.go 结尾的文件,并将其放置在要测试的函数所在的目录中。

下一步,编写一个测试函数,该函数的名称以 Test 开头,后跟要测试的函数的名称。测试函数需要包含多个断言,以验证函数的预期输出。

package mypackage

import (
    "testing"
)

func TestAdd(t *testing.T) {
    expected := 10
    result := Add(5, 5)
    if result != expected {
        t.Errorf("Expected %d, got %d", expected, result)
    }
}

运行测试

使用 go test 命令运行测试:

go test

测量覆盖率

覆盖率衡量代码中执行的代码行数量。要测量覆盖率,可以使用 -cover 标志:

go test -coverprofile=coverage.out

此命令将生成一个覆盖率配置文件,名为 coverage.out

查看覆盖率报告

可以使用 go tool cover 命令查看覆盖率报告:

go tool cover -html=coverage.out

这将在默认浏览器中打开一个覆盖率报告,显示哪些代码行未被执行。

实战案例

考虑一个计算数组中元素和的函数:

package mypackage

func SumArray(arr []int) int {
    sum := 0
    for _, v := range arr {
        sum += v
    }
    return sum
}

测试案例

func TestSumArray(t *testing.T) {
    arr := []int{1, 2, 3, 4, 5}
    expected := 15
    result := SumArray(arr)
    if result != expected {
        t.Errorf("Expected %d, got %d", expected, result)
    }
}

运行测试和查看覆盖率

go test -coverprofile=coverage.out
go tool cover -html=coverage.out

这将生成一个覆盖率报告,其中显示 SumArray

Als nächstes schreiben Sie eine Testfunktion, deren Name mit Test beginnt, gefolgt vom Namen der Funktion, die Sie testen möchten. Die Testfunktion muss mehrere Behauptungen enthalten, um die erwartete Ausgabe der Funktion zu überprüfen. 🎜rrreee🎜🎜Führen Sie den Test aus🎜🎜🎜Verwenden Sie den Befehl go test, um den Test auszuführen: 🎜rrreee🎜🎜Abdeckung messen 🎜🎜🎜Die Abdeckung misst die Anzahl der im Code ausgeführten Codezeilen. Um die Abdeckung zu messen, können Sie das Flag -cover verwenden: 🎜rrreee🎜Dieser Befehl generiert eine Abdeckungskonfigurationsdatei mit dem Namen coverage.out. 🎜🎜🎜Abdeckungsbericht anzeigen🎜🎜🎜Sie können den Abdeckungsbericht mit dem Befehl go tool cover anzeigen: 🎜rrreee🎜Dadurch wird in Ihrem Standardbrowser ein Abdeckungsbericht geöffnet, der anzeigt, welche Codezeilen nicht implementiert wurden . 🎜🎜🎜Praktischer Fall🎜🎜🎜Stellen Sie sich eine Funktion vor, die die Summe der Elemente in einem Array berechnet: 🎜rrreee🎜🎜Testfall🎜🎜rrreee🎜🎜Führen Sie die Tests aus und sehen Sie sich die Abdeckung an.🎜🎜rrreee🎜Dadurch wird ein Abdeckungsbericht generiert zeigt SumArray wurden ausgeführt. 🎜

Das obige ist der detaillierte Inhalt vonWie kann ich Golang-Funktionen testen und abdecken?. 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