1. 程式人生 > 其它 >Go測試方法

Go測試方法

目錄

Go測試方法

測試模板

拿取出個位數字例子

  1. 寫資料來源numbers
  2. 寫want
  3. 寫got
  4. 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)
	}
}

http測試

文章: https://www.cnblogs.com/Detector/p/9769840.html