Golang自带的测试库testing的使用

testing是golang自带的测试库。

testting规则:

在待测试功能所在文件的同级目录中创建一个以_test.go结尾的文件。

测试函数名必须是TestXxxx这个形式,而且Xxxx必须以大写字母开头,另外函数带有一个*testing.T类型的参数。


// 单元测试,主入口,所有testing.T会先执行TestMain方法
func TestMain(m *testing.M) {
	fmt.Println("do main")
	m.Run()
}

// 单元测试
func TestAdd(t *testing.T) {
	result := Add(1, 2)
	if result != 3 {
		t.Errorf("Add(1, 2) = %d; want 3", result)
	}
}

func Add(i, j int) int {
	return i + j
}

// 单元测试
func TestCompute(t *testing.T) {
	type args struct {
		i      int
		j      int
		method string
	}

	tests := []struct {
		name string
		args args
		want int
	}{
		{
			name: "加法",
			args: args{i: 1, j: 2, method: "+"},
			want: 3,
		},
		{
			name: "减法",
			args: args{i: 1, j: 2, method: "-"},
			want: -1,
		},
		{
			name: "乘法",
			args: args{i: 1, j: 2, method: "*"},
			want: 2,
		},
		{
			name: "除法",
			args: args{i: 1, j: 2, method: "/"},
			want: 1,
		},
	}

	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			got := Compute(tt.args.i, tt.args.j, tt.args.method)
			if got != tt.want {
				t.Errorf("Compute() got = %v, want %v", got, tt.want)
			}
		})
	}

}

func Compute(i, j int, method string) int {
	switch method {
	case "+":
		return i + j
	case "-":
		return i - j
	case "*":
		return i * j
	case "/":
		return i / j
	default:
		return i + j
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值