主题
表驱动测试
1. 什么是表驱动测试
通过定义测试用例表(slice),循环执行相同的测试逻辑,便于批量测试。
2. 示例代码
go
func TestAdd(t *testing.T) {
tests := []struct {
name string
a, b int
want int
}{
{"positive", 1, 2, 3},
{"zero", 0, 0, 0},
{"negative", -1, -2, -3},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got := Add(tt.a, tt.b)
if got != tt.want {
t.Errorf("Add(%d, %d) = %d; want %d", tt.a, tt.b, got, tt.want)
}
})
}
}
3. 优点
- 结构清晰,易于维护
- 易扩展新用例
- 支持子测试
t.Run
表驱动测试是 Go 单元测试中的推荐实践,适合多场景验证。