2015-05-11 3 views
0

Например, после того, как я настроил источник данных в фактическую базу данных и использовал @DatabaseSetup, чтобы установить его в состояние, какое из следующего происходит?Изменяет ли DBUnit фактическое состояние базы данных?

1) DBUnit подключается к реальной базе данных, удаляет все, вставляет записи, указанные в @DatabaseSetup, проверяет случаи, а затем откатывается.

2) DBUnit каким-то образом создает базу данных в памяти на основе источника данных, настраивает базу данных в памяти. В реальной базе данных ничего не меняется.

3) Magic.

Как работает DBUnit? Спасибо.

ответ

0

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

Если вы попросите его выполнить CLEAN_INSERT, он уничтожит все данные во всех таблицах, указанных в наборе данных, который вы запрашиваете для загрузки, затем загрузит набор данных, затем он удалит загруженный набор данных. Данные, которые он вытер в начале, не будут возвращены на место.

Если вы используете DBUnit для тестирования, вы, как правило, не укажете его в реальной (то есть производственной) базе данных. Вместо этого вы создали бы какую-то копию и указали бы на это. Эта копия может быть реальным экземпляром вашей БД, что-то в памяти, оно может быть заполнено фиктивными данными или копией реальных данных.