Я использую junit, mockito и mockMVC для проверки работы веб-приложения. Я борюсь с зависимостью, введение которой я не могу понять. Моя структура веб-приложения выглядит следующим образом.
Class Controller{
@Autowired Service searchService;
@RequestMapping("Search")
public returnType search(@RequestParam("parameter")String parameter){
searchService.doSearch(parameter);
}
}
и класс обслуживания
Class Service{
@Autowired Service2 service2;
public returnType doSearch(String parameter){
//some code
service2.call(parameter);
}
}
Мне нужно протестировать метод поиска для этого контроллера, однако service2 в настоящее время не работает, и, следовательно, его вызовы должны быть издевательскими. Я могу издеваться над service2, но не могу понять, как внедрить имитацию service2 в мой экземпляр контроллера mockMVC. Насколько я знаю, @InjectMocks в mockito вводит только mocks на один уровень, а не на два.
РЕДАКТИРОВАТЬ:
Я использую следующее, чтобы получить экземпляр контроллера MockMVC
MockMvc controller;
controller = MockMvcBuilders.standaloneSetup(Controller);