首頁  >  文章  >  後端開發  >  Go 的單元測試

Go 的單元測試

王林
王林原創
2024-07-30 16:56:50969瀏覽

Unit Test At Go

Go 提供了一個測試包,其中包含許多用於單元測試的工具。

準備
讓我們來練習一下,首先準備一個 Cube 結構體,該結構體的物件變數稍後將用作測試材料。

package main

import "math"

type Cube struct {
 Sisi float64
}
func (k Cube) Volume() float64 {
 return math.Pow(k.Sisi, 3)
}
func (k Cube) Area() float64 {
 return math.Pow(k.Sisi, 2) * 6
}
func (k Cube) circumference() float64 {
 return k.Sisi * 12
}

將上面的程式碼儲存在training1.go檔案中

package main
import "testing"
var (
cube Cube = Cube{4}
volume Should float64 = 64
area Should float64 = 96
circumference Should float64 = 48
)
func TestCalculateVolume(t *testing.T) {
t.Logf("Volume : %.2f", cube.Volume())
if cube.Volume() != volumeShould {
t.Errorf("WRONG! should be %.2f", volumeShould)
}
}
func TestCalculateSurface(t *testing.T) {
t.Logf("Area : %.2f", cube.Area())
if cube.Area() != areaShould {
t.Errorf("WRONG! should be %.2f", areaShould)
}
}
func TestCalculatePerimeter(t *testing.T) {
t.Logf("Perimeter : %.2f", cube.Perimeter())
if cube.Perimeter() != circumferenceShould {
t.Errorf("WRONG! should be %.2f", circumferenceShould)
}
}

t.Logf()方法用來顯示日誌。該方法相當於 fmt.Printf() .
Errorf() 方法用於顯示一條日誌,後面接著一條測試期間發生失敗的語句。
執行測試的方法是使用 go test 指令。由於被測試的結構體在 bab55.go 檔案中,因此使用 go test 執行測試時,需要將 bab55_test.go 和 bab55.go 檔案名稱寫入為參數。 -v 或 verbose 參數用於顯示測試期間的所有日誌輸出。
如下圖所示運行應用程序,可以看到沒有測試失敗。好的,那麼試著更改 Keliling() 方法的計算公式。此變更的目的是找出測試失敗時失敗標記如何顯示。

func (k Cube) Perimeter() float64 {
return k.Side * 15
}

之後再次執行測試。

以上是Go 的單元測試的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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