Я хочу протестировать мой контроллер Spring MVC.
У контроллера есть сервис:
@Autowired
UserService userService
И мой сервис пользователя зависит от (autowired) моего UserDao и некоторых других сервисов, таких как mongoDbи т. д.
Теперь я хочу, чтобы бизнес-логика тестировалась в моем UserService, но, конечно, я хочу высмеивать ответы от моих UserDao и Mongodb и т. д.
Как правильно настроить мой модульный тест?
Могу ли я повторно использовать xml-файл контейнера пружины, в котором есть все мои бины и т. Д., Или создать новый? (я предполагаю, что мне нужно получить контейнер пружиныучаствую здесь)
В поисках каких-либо указаний по этому вопросу, любые учебники будут с благодарностью.
Обновление
То, что я нахожу странным, это то, что для моегоSpring Controller (который не реализуется из Controller). Мне удалось получить доступ к моему личному varialbe, чтобы вручную настроить мой сервис, то есть:
@Controller
public class UserController {
@Autowired
UserService userService;
}
И в моем модульном тесте я мог сделать:
UserController controller = new UserController();
controller.userService = ....
Но для моего UserService, который имеет UserDao autowired, я не могу получить доступ к свойству userDao:
UserService userService = new UserServiceImpl();
userService.userDao = .... // not available
Это имеет смысл, поскольку оно является частным, но как оно работает для моего контроллера?