@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 для тестирования веб-контроллеров.

Другие вопросы по тегам