Я написал 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.
Спасибо за вашу помощь.