我一直在阅读有关类验证测试的Hibernate 文档,但没有找到任何解决我的“问题”的方法。我想测试我的自定义验证器。例如,假设我有以下课程:
public class User {
@NotEmpty(message = "{username.notSpecified}")
private String username;
@NotEmpty
@Size(min = 6, message = "{password.tooShort")
private String password;
@NotEmpty(message = "{city.notSpecified}")
private String city;
/* getters & setters omitted */
}
我想检查每个用户是否都位于巴塞罗那市。为此,我的自定义用户验证器实现如下:
public class UserValidator implements Validator {
@Autowired
private Validator validator;
@Override
public boolean supports(Class<?> clazz) {
return User.class.equals(clazz);
}
@Override
public void validate(Object target, Errors errors) {
validator.validate(target,errors);
User user = (User) target;
if(!(user.getCity().equals("Barcelona"))){
errors.rejectValue("city", "city.notValid", "Invalid city");
}
}
}
我不知道如何使用这个自定义验证器而不是示例中提供的默认验证器,它只检查带注释的字段约束,而不是更多的“业务逻辑”约束。有什么例子或线索吗?
谢谢!