Весенние тестовые конфигурации - PullRequest
1 голос
/ 29 сентября 2011

Я довольно новичок в Спринге, и мое понимание немного неуклюжее, так что терпите меня и ответьте на слова для идиота.

Я начал работать над сравнительно большим проектом на основе maven, который загружен (xml) конфигурацией пружины. Для этого у нас есть куча тестов JUnit. На данный момент весенняя конфигурация для тестов заменяет конфигурацию для модулей основного проекта, что является проблемой, потому что это означает, что если мы вносим изменения в конфигурацию основного проекта, то эти изменения не отражаются в тестовом модуле и, следовательно, это можно получить смешные результаты теста.

В настоящее время мы изменяем эту структуру, чтобы конфигурация тестового модуля переопределяла (а не заменяла) конфигурацию основных модулей. Поэтому для каждого теста нам нужно переопределить только те компоненты, которые нам интересны.

Это лучший способ сделать это? Есть ли альтернативные способы? Можно ли еще точнее настроить это так, чтобы вы могли переопределять определенные установщики определенного компонента (а не всего компонента) для тестов?

Любой совет очень ценится.

Ответы [ 3 ]

1 голос
/ 29 сентября 2011

В вашей основной конфигурации выделите всю зависящую от среды конфигурацию (например, источник данных, jms connectionfactory и т. Д.) В отдельный файл конфигурации - (что-то вродеstructure-config.xml). Конфигурация, которая не изменяется при тестировании и развертывании, помещается в другой файл - application-config.xml.

Теперь для теста создайте только новую версию файла конфигурации инфраструктуры - test -structure-config.xml и используйте его вместе с application-config из основного.

1 голос
/ 29 сентября 2011

Вы можете разделить основную конфигурацию на отдельные (логические) блоки и импортировать их в свою тестовую конфигурацию по мере необходимости.

Имейте в виду, что Spring 3.1 представит профили XML. Это идеально подходит для тестирования (с различными конфигурациями окружающей среды). Он еще не выпущен окончательно, но я буду (и буду) использовать этап в новых проектах.

1 голос
/ 29 сентября 2011

Мне, по-моему, немного непонятно с методом, чтобы проверить его сам по себе.

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

Может быть, вы могли бы попытаться использовать их.

Например, немного сложно смоделировать контекст безопасности пользователя, но с пружиной это становится довольно просто, вам просто нужно создать application-context.xml для тестов (и указать на него) и назначить фабрику в это создать тип Bean of Authentication (это интерфейс), и вы можете использовать easy mock для автоматизации ответов этого компонента.

Но чтобы это работало, вы должны создать свой код с учетом этого, поэтому вместо вызова SecurityContext.getContext .... вы вводите этот компонент аутентификации с завода.

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