Я хочу выполнить модульное тестирование проверки в поле в классе java, но безуспешно внедряю макеты в один из других валидаторов в классе
Ниже приведен класс, который я проверяю
public class DtoObject {
public static final int A_MAX_LENGTH = 1000;
@ValidId // this custom validator calls a service called proxyService
private String id;
private Map<Locale, @Size(max = A_MAX_LENGTH, message = ErrorMessage.MAX_LENGTH) String> description;
}
Я хочу написать модульный тест для A_MAX_LENGTH
во время насмешки над вызовом, который выполняется в ValidId
Вот мой тестовый код:
public class DtoObjectTest {
private DtoObject dtoObject = new DtoObject();
private ValidatorFactory validatorFactory;
@InjectMocks
private Validator validator;
@Mock
ProxyService proxyService;
@BeforeEach
private void createValidatorAndSetupCause() {
validatorFactory = Validation.buildDefaultValidatorFactory();
validator = validatorFactory.getValidator(); // this needs to receive mocks
MockitoAnnotations.initMocks(this);
Mockito.doReturn(Optional.of(dtoObject)).when(this.proxyService).getDetails(Mockito.anyString());
}
@AfterEach
private void closeValidatorFactory() {
validatorFactory.close();
}
@Test
public void validateDtoObject_validDescription_noErrors() {
DtoObject dtoObject = TestUtility.buildDtoObject();
Set<ConstraintViolation<DtoObject>> violations = validator.validate(DtoObject);
assertEquals(0, violations.size());
}
Если кто-то мог бы указать, почему мои макеты для proxyService
не были успешно введены в validator
, что было бы очень признательно