Проверка пользовательской проверки с помощью автоматического подключения пружинного хранилища. Проверка JPA - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь проверить мой сервис.Когда я использую аннотацию к методу в сервисе или контроллере, тогда ConstraintValidator успех автоматического проводного репозитория, когда я использую аннотацию к полю в Entity, репозиторий равен нулю.Я не понимаю, почему.

Мой валидатор:

public class MyValidator extends ConstraintValidator<UniqueNumber, Integer> {

  @Autowired
  private SomeRepository reactorRepository;

  @Override
  public void initialize(UniqueNumber annotation) {

  }

  @Override
  public boolean isValid(Integer value, ConstraintValidatorContext context) {
      ...
  } 
}

Моя тестовая конфигурация:

@Configuration
@EnableJpaRepositories(basePackages = "basePackage")
@EntityScan(basePackages = "basePackage")
@EnableAutoConfiguration
@ComponentScan(basePackages = "basePackage")

public class TestConfiguration {

  @PersistenceContext
  private EntityManager entityManager;

  @Bean
  public Validator validator(final AutowireCapableBeanFactory autowireCapableBeanFactory) {
      ValidatorFactory validatorFactory = Validation.byProvider(HibernateValidator.class)
              .configure()
              .constraintValidatorFactory(new SpringConstraintValidatorFactory(autowireCapableBeanFactory))
              .buildValidatorFactory();
      Validator validator = validatorFactory.getValidator();

      return validator;
  }

  @Bean
  public MethodValidationPostProcessor validationPostProcessor(final AutowireCapableBeanFactory autowireCapableBeanFactory) {
      MethodValidationPostProcessor processor = new MethodValidationPostProcessor();
      processor.setValidator(validator(autowireCapableBeanFactory));
      return processor;
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...