如何在Golang 單元測試中使用Gomega 進行斷言
在Golang 單元測試中,Gomega 是一個流行且功能強大的斷言庫,它提供了豐富的斷言方法,使開發人員可以輕鬆驗證測試結果。
安裝Gomega
1 | go get -u github.com/onsi/gomega
|
登入後複製
使用Gomega 進行斷言
以下是使用Gomega 進行斷言的一些常用範例:
1. 相等斷言
1 2 3 4 5 6 7 8 | import "github.com/onsi/gomega"
func Test_MyFunction(t *testing.T) {
gomega.RegisterTestingT(t)
actual := MyFunction()
gomega.Expect(actual).To(gomega.Equal( 5 ))
}
|
登入後複製
2. 不相等斷言
1 2 3 4 5 6 7 8 | import "github.com/onsi/gomega"
func Test_MyFunction(t *testing.T) {
gomega.RegisterTestingT(t)
actual := MyFunction()
gomega.Expect(actual).NotTo(gomega.Equal( 5 ))
}
|
登入後複製
3. 真值斷言
1 2 3 4 5 6 7 8 | import "github.com/onsi/gomega"
func Test_MyFunction(t *testing.T) {
gomega.RegisterTestingT(t)
actual := MyFunction()
gomega.Expect(actual).To(gomega.BeTrue())
}
|
登入後複製
4. 指標相等斷言
1 2 3 4 5 6 7 8 9 | import "github.com/onsi/gomega"
func Test_MyFunction(t *testing.T) {
gomega.RegisterTestingT(t)
actual := &MyStruct{}
expected := &MyStruct{}
gomega.Expect(actual).To(gomega.PointTo(expected))
}
|
登入後複製
#5.失敗斷言
1 2 3 4 5 6 7 8 | import "github.com/onsi/gomega"
func Test_MyFunction(t *testing.T) {
gomega.RegisterTestingT(t)
actual := MyFunction()
gomega.Expect(actual).To(gomega.Equal( 6 ), "Unexpected value" )
}
|
登入後複製
實戰案例
假設我們有一個函數ComputeSum
,用來計算兩個數字的和。我們可以使用 Gomega 編寫以下單元測試:
1 2 3 4 5 6 | func Test_ComputeSum(t *testing.T) {
gomega.RegisterTestingT(t)
actual := ComputeSum( 2 , 3 )
gomega.Expect(actual).To(gomega.Equal( 5 ))
}
|
登入後複製
使用 Gomega 使得我們可以輕鬆地驗證測試結果,並提高單元測試的可靠性。
以上是如何在 Golang 單元測試中使用 gomega 進行斷言?的詳細內容。更多資訊請關注PHP中文網其他相關文章!