Как я могу заставить maven использовать мою ложную версию зависимостей на этапе тестирования? - PullRequest
1 голос
/ 01 апреля 2010

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

Я хочу, чтобы maven2:

1) скомпилировать мои ложные уроки
2) скомпилировать основные классы, которые зависят от проверяемого кода
3) запустить тесты
4) перекомпилировать любые основные классы с реальными зависимостями, а не с моками
5) закончить установку maven

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

Ответы [ 3 ]

2 голосов
/ 01 апреля 2010

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

Код для интерфейсов вместо конкретных классов . У вас будут как производственные реализации интерфейсов, так и фиктивные реализации. Вы даже можете сойти с ума и написать свои макеты, используя jMock или EasyMock . Это может быть слишком диким: -)

Используйте внедрение зависимостей для внедрения производственных классов в производство и макетов классов в ваших модульных тестах.

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

0 голосов
/ 01 апреля 2010

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

0 голосов
/ 01 апреля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...