Heim > Artikel > Backend-Entwicklung > Wie kann das Testen und die Abdeckung von Golang-Funktionen verbessert werden?
Wie kann die Testabdeckung von Golang-Funktionen verbessert werden? Abdeckung messen: Verwenden Sie den Befehl go test -cover. Testfallausnahmen hinzufügen: Testfallausnahmen für nicht ausgeführte Codepfade hinzufügen. Verwenden eines Abdeckungsprofils: Verwenden Sie go test -coverprofile=cover.out, um ein Abdeckungsprofil zu erstellen. Verwenden Sie das Cover-Tool: Verwenden Sie das Go-Tool cover -html=cover.out, um einen detaillierten Abdeckungsbericht anzuzeigen.
So verbessern Sie die Testabdeckung von Golang-Funktionen
Einführung
Die Testabdeckung misst, welche Teile der Anwendung im Test ausgeführt werden. Eine hohe Abdeckung weist darauf hin, dass die meisten Codepfade in der Anwendung während des Tests ausgeführt wurden, wodurch das Vertrauen in die Zuverlässigkeit der Software erhöht wird. In diesem Artikel erfahren Sie, wie Sie die Testabdeckung Ihrer Golang-Funktionen verbessern können.
Abdeckung messen
Um die Abdeckung zu messen, können Sie den Befehl go test -cover
verwenden. Dieser Befehl druckt nach den Testläufen einen Abdeckungsbericht. go test -cover
命令。该命令将在测试运行后打印覆盖率报告。
go test -cover
实用案例
考虑以下 Golang 函数:
func Sum(a, b int) int { return a + b }
初始测试覆盖率报告如下:
coverage: 50.0% of statements
该覆盖率表明只有 50% 的代码在测试中得到了执行。要提高覆盖率,需要添加测试用例外界因素,以执行未执行的代码路径。
添加测试用例外界因素
对于 Sum
函数,可以添加如下测试用例外界因素,以覆盖未执行的代码路径:
func TestSumNegative(t *testing.T) { result := Sum(-1, -2) if result != -3 { t.Errorf("Expected -3, got %d", result) } }
这个测试用例外界因素测试了函数是否处理负数输入。添加此测试用例外界因素后,覆盖率报告将如下所示:
coverage: 100.0% of statements
使用覆盖率配置文件
为了更容易地跟踪与覆盖率相关的更改,可以使用覆盖率配置文件。覆盖率配置文件包含了覆盖率数据,可用于在不同的测试运行之间进行比较。要创建覆盖率配置文件,请使用 go test -coverprofile=cover.out
命令。
go test -coverprofile=cover.out
使用 cover
工具
cover
工具是一个交互式工具,使您可以浏览代码覆盖率信息。要使用 cover
go tool cover -html=cover.out
Praktischer Fall
Betrachten Sie die folgende Golang-Funktion: rrreee
Der erste Testabdeckungsbericht lautet wie folgt:rrreee
Diese Abdeckung gibt an, dass nur 50 % des Codes im Test ausgeführt wurden. Um die Abdeckung zu verbessern, müssen Testfallausnahmen hinzugefügt werden, um Codepfade auszuführen, die nicht ausgeführt werden. 🎜🎜🎜Testfallausnahmen hinzufügen🎜🎜🎜Für die FunktionSum
können Sie die folgenden Testfallausnahmen hinzufügen, um den nicht ausgeführten Codepfad abzudecken: 🎜rrreee🎜Diese Testfallausnahme testet, ob die Funktion Negativ behandelt Eingang. Nachdem Sie diese Testfallausnahme hinzugefügt haben, sieht der Abdeckungsbericht wie folgt aus: 🎜rrreee🎜🎜Verwenden von Abdeckungsprofilen🎜🎜🎜Um deckungsbezogene Änderungen einfacher zu verfolgen, können Sie Abdeckungsprofile verwenden. Abdeckungsprofile enthalten Abdeckungsdaten, die für Vergleiche zwischen verschiedenen Testläufen verwendet werden können. Um ein Abdeckungsprofil zu erstellen, verwenden Sie den Befehl go test -coverprofile=cover.out
. 🎜rrreee🎜🎜Verwenden Sie das Tool cover
🎜🎜🎜 Das Tool cover
ist ein interaktives Tool, mit dem Sie Informationen zur Codeabdeckung durchsuchen können. Um das cover
-Tool zu verwenden, führen Sie den folgenden Befehl aus: 🎜rrreee🎜Dadurch wird ein HTML-Bericht in Ihrem Standardbrowser geöffnet, der detaillierte Abdeckungsdaten für jede Funktion und Methode anzeigt. 🎜🎜🎜Zusammenfassung🎜🎜🎜Durch das Hinzufügen von Testfallausnahmen und die Verwendung von Abdeckungsprofilen können Sie die Testabdeckung Ihrer Golang-Funktionen verbessern. Eine hohe Abdeckung erhöht das Vertrauen in die Zuverlässigkeit der Software und hilft bei der Identifizierung ungetesteter Bereiche im Code. 🎜Das obige ist der detaillierte Inhalt vonWie kann das Testen und die Abdeckung von Golang-Funktionen verbessert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!