@Autowired HttpServletRequest внутри интеграционных тестов
Наконец, мне удалось настроить контекст для некоторого интеграционного теста и протестировать методы, которые ожидают @PathVariable или @ModelAttribute. Тем не менее, я не могу понять, как я могу настроить HTTPServletRequest, используемый внутри контроллера.
MyController {
@Autowired
private HttpServletRequest request;
}
Запрос никогда не обновляется, пока я запускаю тест. Я мог бы что-то неправильно понять (насколько я новичок в Spring). Как мне этого добиться? Заранее спасибо за ответ!
2 ответа
У меня не было времени, чтобы заполнить ответ: я использую MockHttpServletRequest и Spring 3.1.2. Мне удалось решить эту проблему не с помощью @Autowired, а путем получения bean-компонента запроса от контроллера. Что-то вроде этого:
mockRequest = (MockHttpServletRequest) applicationContext.getBean ("request");
Надеюсь, что это поможет кому-то еще...
Разве HttpServletRequest не передается в контроллер через параметр метода? Используйте @Autowired для подключения переменной экземпляра к бину контекста Spring. Может быть, вы можете взглянуть на MockHttpServletRequest для тестирования веб-контроллеров.