2016-10-10 3 views
0

У меня есть приложение Spring, которое использует репозитории Jpa (интерфейсы CrudRepository). Когда я пытаюсь проверить свой контроллер с помощью нового синтаксиса теста Spring @WebMvcTest (MyController.class), он не работает, он пытается создать экземпляр одного из моих классов службы, который использует репозиторий Jpa, есть ли у кого-нибудь какие-либо подсказки о том, как это исправить? Приложение работает, когда я запускаю его.Spring Annotation @WebMvcTest не работает в приложении с репозиториями Jpa

Здесь ошибка:

*************************** 
APPLICATION FAILED TO START 
*************************** 

Description: 

Parameter 0 of constructor in com.myapp.service.UserServiceImpl required a bean of type 'com.myapp.repository.UserRepository' that could not be found. 

Action: 

Consider defining a bean of type 'com.myapp.repository.UserRepository' in your configuration. 
+0

Просьба поделиться своим pom.xml и завершить трассировку стека до глубокого погружения. –

ответ

1

Согласно документу

Using this annotation will disable full auto-configuration and instead apply only configuration relevant to MVC tests (i.e. @Controller, @ControllerAdvice, @JsonComponent Filter, WebMvcConfigurer and HandlerMethodArgumentResolver beans but not @Component, @Service or @Repository beans).

Этот annotion применяется только на компонентах Spring MVC.

Если вы хотите загрузить полную конфигурацию приложения и использовать MockMVC, вы должны рассмотреть @SpringBootTest в сочетании с @AutoConfigureMockMvc, а не эту аннотацию.

+0

Да, вы правы, я закончил использовать метод, который вы упомянули, и он работает. – dickyj

Смежные вопросы