2010-03-31 2 views
1

, поэтому у меня есть приложение Java с доступом к некоторым веб-службам. Я хочу издеваться над соответствующими классами, поэтому я могу просто использовать несколько жестко закодированных запросов/ответов, и я хочу, чтобы maven плавно использовал их во время тестов и игнорировал их во время окончательной сборки.Как я могу заставить maven использовать мою макетную версию зависимостей во время фазы тестирования

Я хочу Maven2 к:

1) собрать мои фиктивные классы
2) обобщить основные классы, которые зависят от издевались кода
3) запускать тесты
4) перекомпилировать любые основные классы с реальным зависимостей, а не мои издевается
5) закончить вверх по Maven установить

в идеале я хочу просто назвать мои фиктивные классы так же, как мой основной класс и просто держать их в SRC/тест/издевается или что-то. Я вроде как новичок в maven, и до сих пор похоже, что maven только скомпилирует src/main, а затем src/test, но я надеюсь, что смогу. Есть идеи?

ответ

2

Это не прямой ответ на ваш вопрос, но я считаю, что это лучший способ сделать это.

Code to interfaces instead of concrete classes. У вас будут как производственные реализации интерфейсов, так и макетные реализации. Вы можете даже пойти на дикую природу и написать свои издевки, используя jMock или EasyMock. Это может быть чересчур дико :-)

Используйте dependency injection, чтобы ввести производственные классы в производство и высмеять классы в своих модульных тестах.

Ваши издевательства могут полностью жить ./src/test/java. Возможно, вы можете добавить разные источники в тестовые источники, но путь наименьшего сопротивления будет состоять только в пакете с именем «mocks». Конфигурация с использованием конфигурации предпочтительна для Maven.

0

Сделайте еще один проект maven для этих тестов. Могут быть альтернативы, но они будут путать и трудно поддерживать.

0

У Maven нет такого рабочего процесса (особенно на шаге 4), и реализация чего-то приближающегося будет определенно не простой. Моя рекомендация состояла бы в том, чтобы использовать какую-либо структуру DI с «конфигурацией тестирования», чтобы вводить ваши макеты во время тестирования во время тестирования.

Смежные вопросы