在Golang中,我們可以使用內置的"testing"包來實現單元測試。下面是一個簡單的示例,展示了如何為一個函數編寫單元測試:
calculator.go
的文件,其中包含要測試的函數。例如,我們創建一個簡單的計算器函數,用于加法運算:package calculator
func Add(a, b int) int {
return a + b
}
calculator_test.go
的文件,用于編寫單元測試。按照慣例,測試文件的命名通常以_test.go
結尾,并與被測試的文件位于同一個包中。package calculator
import "testing"
func TestAdd(t *testing.T) {
result := Add(2, 3)
expected := 5
if result != expected {
t.Errorf("Add(2, 3) returned %d, expected %d", result, expected)
}
}
在這個例子中,我們編寫了一個名為TestAdd
的測試函數,它使用testing.T
類型的參數t
來報告測試失敗。我們調用Add
函數,并將結果與預期值進行比較。如果結果不符合預期,我們使用t.Errorf
來記錄錯誤。
go test
命令來執行單元測試:$ go test
PASS
ok command-line-arguments 0.001s
如果測試通過,你將看到類似于上面的輸出。如果測試失敗,go test
將輸出詳細的錯誤信息。
這只是一個簡單的示例,你可以根據需要編寫更多的測試用例來覆蓋不同的輸入和邊界條件。在實際項目中,你可能還需要使用更復雜的測試工具和框架,例如github.com/stretchr/testify
,它提供了更多的斷言和測試工具。