Springboot ConstraintValidator не читает конфигурацию свойств с помощью MockitoJUnitRunner или SpringBoot - PullRequest
0 голосов
/ 28 июня 2018

Я написал ConstraintValidator, который будет читать пару значений ключа из файла yaml. Код Th прекрасно работает во время выполнения, но не работает во время тестирования. Я попытался с классами MockitoJUnitRunner и SpringRunner.

Я использовал ту же логику в реализации CustomConverters, которая способна считывать пару ключ-значение во время выполнения и тестирования.

Не могли бы вы посоветовать, как проверить ConstraintValidator с параметрами конфигурации.

Код:

 @ConfigurationProperties(prefix="gender")
    public class GenderValidator implements ConstraintValidator<Gender, String> {

    private Map<String, String> type = new HashMap<String, String>();

    @Override
    public void initialize(Gender gender) {

    }

    @Override
    public boolean isValid(String value, ConstraintValidatorContext ctx) {      
        return getType().containsKey(value);
    }
    public Map<String, String> getType() {return type; }   
    }

Конфигурация

 gender:
    type:
      M: male
      F: female

TestCode:

 Set<ConstraintViolation<GenderDetails>> constraintViolations =
                validator.validate(payload);
        assertThat (constraintViolations.isEmpty(), is(true) );

AssertThat всегда возвращает ошибку.

Примечание. Я настроил PropertySourcesPlaceholderConfigurer в классе конфигурации, который работает нормально при тестировании CustomConverter.

Спасибо за вашу помощь.

...