
待测试:
// add.go
package util
func Add(a int, b int) int {
return a + b
}
使用gotests工具,自动生成测试用例框架:
https://github.com/cweill/gotests
gotests --help
add_test.go
package util import "testing" func TestAdd(t *testing.T) {
type args struct {
a int
b int
}
tests := []struct {
name string
args args
want int
}{
// TODO: Add test cases.
{
name: "case1",
args: args{1, 2},
want: 3,
},
{
name: "case2",
args: args{3, 6},
want: 8,
},
{
name: "case3",
args: args{1, 4},
want: 4,
},
{
name: "case4",
args: args{13, 6},
want: 19,
},
{
name: "case5",
args: args{1, 16},
want: 17,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := Add(tt.args.a, tt.args.b); got != tt.want {
t.Errorf("Add() = %v, want %v", got, tt.want)
}
})
}
}
测试:
go test
结果:
--- FAIL: TestAdd (0.00s)
--- FAIL: TestAdd/case2 (0.00s)
add_test.go:45: Add() = 9, want 8
--- FAIL: TestAdd/case3 (0.00s)
add_test.go:45: Add() = 5, want 4
FAIL
exit status 1
FAIL _/Users/jerry/dev/demo/util 0.004s