Модульный тест в Знатоке требует доступа к src/main/webapp Каталогу

Я пробую к модульному тесту веб-приложение, которое я разрабатываю в Знатоке/Eclipse. Это - Spring веб-приложение MVC, и мне нужны некоторые модульные тесты для тестирования моего образцового контроллера.

Чтобы сделать это, я должен использовать свою конфигурацию веб-приложения .xml файлы для введения контроллера, однако, вся моя конфигурация (и другие связанные файлы, что ссылка конфигураций) находятся в src/main/webapp каталоге (согласно конвенции Знатока) - существует много файлов в здесь, что я должен сослаться в своих тестах, но они не доступны при запущении теста, поскольку они не находятся на пути к классу (Знаток только, кажется, добавляет src/main/java, src/test/java, src/main/resources, src/test/resources к пути к классу, но не src/main/webapps),

Я не хочу должным быть копировать свое все веб-приложение в в мою src/test/resources папку только в целях тестирования - там какой-либо другой способ смочь получить доступ к ним?

Я могу обойти это путем изменения Eclipse "Выполненные Конфигурации" для включения этой папки в путь к классу, но это не будет работать при запущении тестов из командной строки?

Кто-либо еще встретился с этим? есть ли знать решение?

Спасибо!

12
задан Bozho 23 April 2010 в 14:27
поделиться

3 ответа

В общем, вы должны использовать макеты (например, EasyMock или jMock) для выполнения модульного тестирования вашего контроллера; модульный тест должен тестировать компонент изолированно от остальной системы. В Spring 3 вы можете определить свои Контроллеры как POJO с аннотациями, а затем просто протестировать Контроллеры без какого-либо взаимодействия со Spring вообще.

Если вы хотите провести дополнительное тестирование на уровне интеграции, вы можете разместить общие части файлов конфигурации в src / main / resources, чтобы они стали доступными в пути к классам. Затем используйте специальную конфигурацию теста в src / test / resources для вашего теста. Этот файл может либо импортировать эти файлы вместе со всем, что вам нужно, либо вы можете аннотировать свой тестовый пример с помощью @ContextConfiguration, чтобы указать несколько файлов, которые необходимы для сборки контекста.

Конкретный пример см. В сообщении в блоге об интеграционном тестировании Spring MVC . Глава Тестирование руководства Spring также содержит достойный обзор интеграционного тестирования в Spring.

6
ответ дан 2 December 2019 в 21:02
поделиться

Для этого мне нужно использовать мои XML-файлы конфигурации webapp для внедрения контроллера, однако вся моя конфигурация (и другие связанные файлы, которые конфигурируются reference) находятся в каталоге src / main / webapp

Какие именно файлы вам понадобятся во время модульных тестов?

Я не хочу копировать все мое веб-приложение в папку src / test / resources просто в целях тестирования - есть ли другой способ получить к ним доступ?

Нет. Если вы хотите, чтобы они были в пути к классам, поместите их в src / main / resources или src / test / resources , файлы в src / main / webapp не находятся в пути к классам, потому что не должны.

0
ответ дан 2 December 2019 в 21:02
поделиться

Первая ссылка Эмиля была правильной, показывая правильное расположение @ContextConfiguration.

Если ваши конфигурационные файлы Spring находятся в src/main/webapp/**, то они не будут находиться в classpath при сборке Maven. Чтобы получить конфигурацию для интеграционного тестирования, просто укажите путь, используя префикс file:.

@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/app-config.xml")

Если использовать плагин Spring's STS для создания нового проекта Spring MVC, вы заметите, что файлы конфигурации контекста приложения помещены в место, указанное в моем примере. Способ их использования в интеграционном тестировании заключается в том, чтобы указать путь, используя префикс file:, как описано выше.

4
ответ дан 2 December 2019 в 21:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: