1 回答
TA贡献1873条经验 获得超9个赞
如果你想对一个接受的函数进行单元测试validator.ValidationErrors,只需自己构造测试值,使用实现的类型(可能是结构)FieldError。
方法不多,但如果你只想实现你的函数调用的那些,你可以嵌入validator.FieldError到结构类型中:
type mockFieldError struct {
validator.FieldError
tag string
field string
}
func (e mockFieldError) Tag() string { return e.tag }
func (e mockFieldError) Field() string { return e.field }
并构造validator.ValidationErrors(注意,嵌入式validator.FieldError是未初始化的,所以要确保被测函数没有调用其他你没有实现的方法,否则会panic):
ve := validator.ValidationErrors{
mockFieldError{tag: "a", field: "field1"},
mockFieldError{tag: "b", field: "field2"},
}
所以现在用上面的值调用foo编译并返回一个字符串,你可以根据你的预期输出断言:
s := foo(ve)
fmt.Println(s) // [a:field1 b:field2]
完整的游乐场:https ://go.dev/play/p/-btZ6lrKk4V
- 1 回答
- 0 关注
- 99 浏览
添加回答
举报