2015-11-29 3 views
3

Я использую @QuerydslPredicate, как это предлагается в весеннем документе здесь.@QuerydslPredicate in spring test failed in standaloneSetup

QueryDSL web support Everthing отлично работает, когда я запускаю веб-приложение. Однако для тестовых случаев, когда я использую

MockMvcBuilders.standaloneSetup(classificationResource) 

Я получаю исключение: -

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.mysema.query.types.Predicate]: Specified class is an interface 
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:101) 

вещи отлично работает, когда я загружаю полный контекст, используя.

MockMvcBuilders.webAppContextSetup(wac).build(); 

Мой вопрос в том, как сделать эту работу в автономном режиме?

ответ

0

В этом случае поможет следующий распознаватель: org.springframework.data.web.querydsl.QuerydslPredicateArgumentResolver

Вводят этот распознаватель:

@Inject 
private QuerydslPredicateArgumentResolver querydslPredicateArgumentResolver; 

И затем добавить распознаватель в контексте:

MockMvcBuilders.standaloneSetup(classificationResource) 
     .setCustomArgumentResolvers(querydslPredicateArgumentResolver) 
     .build();