我如何检查一个以上违反约束的条件?

问题描述 投票:0回答:1

我创建了一个验证器来验证我在模型类中定义的注释,即@NotNull@Pattern等。在编写测试用例的同时,我创建了以下断言,寻找一个违规。但是,在某些情况下,违反次数超过1次。我如何修改以下内容以检查多个违规?我本质上想要一个像

这样的断言

result.getViolations().size(), is(1 or more)

ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory();
    Validator validator = validatorFactory.getValidator();

    Set<ConstraintViolation<CreateRequest>> violations = validator.validate(createRequest);

    if (violations.isEmpty()) {
        CreateResponse createResponse = restTemplate.postForObject(clientProperties.getCreateUrl(), createRequest, CreateResponse.class);
        return new ClientResult<>(createResponse);
    } else {
        return new ClientResult<>(violations);
    }

        assertThat("Number of violations", result.getViolations().size(), is(1));
java spring-boot resttemplate junit5 hamcrest
1个回答
1
投票

您可以将最后一行更改为:

assertThat("Number of violations", result.getViolations().size(), is(oneOf(1, 2)));

关于docs方法,请参见oneOf

经过Hamcrest 2.2测试

© www.soinside.com 2019 - 2024. All rights reserved.