Spring 3.0 junit test DispatcherServlet
-
27-10-2019 - |
Вопрос
Я пытаюсь протестировать свое приложение с помощью junit.
Поэтому я установил следующий класс:
родовое слово}
Итак, проблема в том, что кажется, что мой сервлет-диспетчер не может отправлять запросы ни на один из моих контроллеров.
Думаю, что с конфигурацией что-то есть - contextConfigurationLocation. Похоже, он может найти файл (иначе возникнет исключение), но не загружает конфигурацию
Регистратор говорит:
org.springframework.web.servlet.PageNotFound - не найдено сопоставление для HTTP-запроса с URI [http:// localhost: 8080 / myapp / abc]
Но я совершенно не понимаю, что не так ...
Буду признателен за любую помощь!
Заранее спасибо
Решение
Мины работают нормально, попробуйте следующие настройки.
- если вы используете Junit4, вам не нужно расширять тестовый класс, подойдет программа junit runner.
-
Загрузите конфигурацию контекста через путь к классам и убедитесь, что он доступен из пути к классам теста
@ContextConfiguration(locations={"classpath:applicationContext-test.xml"})
-
, а затем просто протестируйте аннотированные контроллеры.Я так делаю:
Другие советы
В моем вопросе несколько проблем:
Во-первых, невозможно расширить AbstractJUnit4SpringContextTests и использовать @RunWith (...), потому что это одно и то же.
Во-вторых, вы должны использовать не dispatcherServlert, а Handler, определив обработчик в файле application.xml и автоматически подключив его в тестовом примере через обработчик частного обработчика @Autowire ...
Тогда все должно работать нормально!