2010-08-12 2 views
6

Я пытаюсь настроить некоторые модульные тесты, которые используют базу данных. Я бы хотел использовать тестовую базу данных на компьютере разработчика, а не в производственной базе данных. Теперь у меня есть метод проверки переменной среды при подключении к базе данных, и если эта переменная существует для подключения к локальной, а не к производственной.Настройка переменных среды для всех тестов JUnit в Eclipse

Я могу установить переменные среды в Eclipse через Run Configurations, но я хочу, чтобы это происходило всякий раз, когда выполняется JUnit-тест (на всякий случай).

Возможно ли это в Eclipse?

ответ

5

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

Использование переменных среды в тестах обычно является признаком того, что конфигурация происходит слишком глубоко внутри вашего кода IME. Там, где это возможно, мне гораздо лучше создавать объекты со всем, что им нужно, путем инъекции зависимостей, сохраняя этот код отдельно от кода конфигурации, который разрабатывает, что вводить.

+0

Hmmmmm .... возможно, потребуется сделать повторный факторинг, чтобы сделать эту работу ... Хотя это, похоже, лучшее решение, чем смешивание конфигурации и логики, как в настоящее время ... – KLee1

1

Я думаю, что информация о жестком кодировании или тестовый/производственный коммутатор - не самая лучшая идея.

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

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

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