2.功能测试

常用参数

  • -count 运行的次数 默认为1 多次运行 go test 命令,可以看到输出的结果中有了一个 (cache) 标识, 通过使用参数 -count=1 可以达到 “禁用缓存” 的效果
  • -v 通过使用参数 -v 可以从输出结果中清晰的看到每个测试用例的运行情况
  • -timeout 测试运行超时时间 默认为 10 分钟
  • -run 运行特定的测试函数 比如 -run sum 只测试函数名称中包含 sum 的函数
package main

func sum(numbers ...int) int {
	total := 0
	for _, n := range numbers {
		total += n
	}
	return total
}

func main() {

}
package main

import "testing" // 引入 testing 包

func Test_sum(t *testing.T) { // 功能测试以 `Test` 前缀命名
	tests := []struct {
		numbers []int // 将可变参数转换为一个切片
		want    int   // 正确的返回值,用于和结果进行比较
	}{
		{
			[]int{},
			0,
		},
		{
			[]int{1},
			1,
		},
		{
			[]int{1, 2, 3},
			6,
		},
	}

	for _, tt := range tests {
		if got := sum(tt.numbers...); got != tt.want {
			// t.Errorf 类似fmt.Printf()
			t.Errorf("sum() = %v, want %v", got, tt.want)
		}
	}
}

或者

package main

import "testing" // 引入 testing 包

func Test_sum(t *testing.T) {	// 功能测试以 `Test` 前缀命名
	if v := sum(); v != 0 {
		// t.Errorf 类似fmt.Printf()
		t.Errorf("sum() = %v, want %v", v, 0)
	}

	if v := sum(1); v != 1 {
		t.Errorf("sum() = %v, want %v", v, 1)
	}

	if v := sum(1, 2, 3); v != 6 {
		t.Errorf("sum() = %v, want %v", v, 6)
	}
}

测试失败时终止 默认情况下,所有测试用例都是独立的,如果其中一个用例测试失败,其他用例会继续运行测试,这样可以捕获到所有的失败测试用例。 如果希望测试失败时终止测试,可以将 t.Errorf() 函数更换为 t.Fatalf()。

posted @ 2024-04-23 10:01  烟熏咸鱼干  阅读(4)  评论(0编辑  收藏  举报