首頁  >  文章  >  後端開發  >  golang函數的測試與覆蓋率如何進行?

golang函數的測試與覆蓋率如何進行?

WBOY
WBOY原創
2024-04-27 13:36:02828瀏覽

在 Go 中,測試和覆蓋率對於維護穩定且可靠的程式碼至關重要。測試透過編寫以 Test 開頭的函數進行,其中包含斷言來驗證函數的預期輸出。執行測試時使用 go test 指令,而測量覆蓋率可以使用 go test -coverprofile=coverage.out 指令產生覆蓋率設定檔。若要查看覆蓋率報告,請使用 go tool cover -html=coverage.out 命令,該命令將在瀏覽器中顯示哪些程式碼行未執行。

golang函數的測試與覆蓋率如何進行?

Go 函數的測試與覆蓋率

在Go 中,測試和覆蓋率對於維護穩定且可靠的程式碼至關重要。本教學將指導你逐步設定和運行 Go 函數的測試。

設定測試

首先,建立一個以_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 函數中所有程式碼行均已執行。

以上是golang函數的測試與覆蓋率如何進行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn