石家莊做手機(jī)網(wǎng)站建設(shè)愛站工具包下載
testing是golang自帶的測試庫。
testting規(guī)則:
在待測試功能所在文件的同級目錄中創(chuàng)建一個以_test.go結(jié)尾的文件。
測試函數(shù)名必須是TestXxxx這個形式,而且Xxxx必須以大寫字母開頭,另外函數(shù)帶有一個*testing.T類型的參數(shù)。
// 單元測試,主入口,所有testing.T會先執(zhí)行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 intj intmethod string}tests := []struct {name stringargs argswant 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 + jcase "-":return i - jcase "*":return i * jcase "/":return i / jdefault:return i + j}
}