Go測試方法
阿新 • • 發佈:2021-07-21
目錄
Go測試方法
測試模板
拿取出個位數字例子
- 寫資料來源numbers
- 寫want
- 寫got
- want 和 got作比較
程式碼
// func: FetchUnitsDigit() (int, error) // aim: 取出個位數字 func FetchUnitsDigit(data interface{}) (int, error) { toInt64, err := shift.ToInt64(data) if err != nil { return 0, err } res := toInt64 % 10 return int(res), nil }
測試程式碼
func TestFetchUnitsDigit(t *testing.T) {
numbers := 3457.1189
digit, err := FetchUnitsDigit(numbers)
if err != nil {
t.Fatal(err)
}
want := 7
got := digit
if want != got {
t.Errorf("got %d want %d given, %v", got, want, numbers)
}
}
同一個函式相同測試,資料來源不同
func TestFetchUnitsDigit(t *testing.T) { t.Run("測試1", func(t *testing.T) { numbers := 3457.1189 digit, err := FetchUnitsDigit(numbers) if err != nil { t.Fatal(err) } want := 7 got := digit if want != got { t.Errorf("got %d want %d given, %v", got, want, numbers) } }) t.Run("測試2", func(t *testing.T) { numbers := 33.123 digit, err := FetchUnitsDigit(numbers) if err != nil { t.Fatal(err) } want := 7 got := digit if want != got { t.Errorf("got %d want %d given, %v", got, want, numbers) } }) t.Run("測試3", func(t *testing.T) { numbers := 892 digit, err := FetchUnitsDigit(numbers) if err != nil { t.Fatal(err) } want := 7 got := digit if want != got { t.Errorf("got %d want %d given, %v", got, want, numbers) } }) }
壓力測試
func BenchmarkFetchUnitsDigit(b *testing.B) {
for i := 0; i < b.N; i++ {
FetchUnitsDigit(4.4441)
}
}