文档:https://docs.jboss.org/hibernate/validator/5.4/api/org/hibernate/validator/internal/constraintvalidators/hv/pl/PESELValidator.html

@Test
    public void testEncryptingPesel() {
        // given
        CharSequence validPesel = "94092367705";


        // when
        PESELValidator validator = new PESELValidator();

        // then
        assertTrue(validator.isValid(validPesel, null));
}


测试失败。 PESEL是100%正确的,您可以在此处进行检查:
https://sprawdz-numer.com/pesel

最佳答案

这是因为您没有初始化验证器,所以它不知道哪个数字是验证数字。
您必须显式调用initialize方法:

// when
PESELValidator validator = new PESELValidator();
validator.initialize(null);


该参数为null,因为无论如何它都会被忽略(很难说出此方法作者的想法)。

10-06 03:46