java - 如何仅针对特定约束验证 DTO 而忽略另一个?
问题描述
想象一个案例我们有这样的 dto
@CheckUserDetailsNotNull
@CheckUserMobileValid
@CheckUserEmailValid
public class UserDto {}
当然,对于这些注释中的每一个,都有专用的约束验证器,例如对于@CheckUserMobileValid有UserMobileValidator
因此,我将为UserMobileValidator编写一个单元测试,但在测试范围内,我只想检查@CheckUserMobileValid而不会触发其他验证器。这是一个简单的测试:
public class UserMobileValidatorTest {
private Validator validator;
@Before
public void setup() {
validator = Validation.buildDefaultValidatorFactory().getValidator();
}
@Test
public void mobileShouldBeValid() {
UserDto userDto = new UserDto();
userDto.setMobile("062233442234");
Set<ConstraintViolation<UserDto>> constraintViolations = validator.validate(UserDto);
Assert.assertEquals("Expected validation error not found", 1, constraintViolations.size());
}
它工作得很好,但所有验证器都会被触发,有没有办法只触发UserMobileValidator?
解决方案
推荐阅读
- javascript - 根据指定的属性将 python 中的数组元素拆分为单独的 HTML 表
- javascript - jQuery - 将复选框表转换为 json
- r - ggplot 相当于线框
- python - Python-iptables,带有接口的规则与 ipv6 数据包不匹配
- java - 在一个尝试语句中打开多个资源是否不可靠?为什么?
- eigen - LDLT 的自定义分配器
- css - nth-last-child 或 last-child 不工作
- c# - IServiceCollection.AddHostedService<>(); 不解决
- abap - abap 计算相似的行值
- javascript - Javascript数组,删除相同的组合数字但顺序不同