Задание переменных среды для всех тестов JUnit в Eclipse - PullRequest
6 голосов
/ 13 августа 2010

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

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

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

Ответы [ 2 ]

5 голосов
/ 13 августа 2010

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

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

1 голос
/ 17 августа 2010

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

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

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

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