Статьи

Готовность к тестированию базы данных за 10 минут с DbUnit Express

DbUnit Express — это моя оболочка для DbUnit, которая призвана упростить настройку теста кода, взаимодействующего с базой данных. Он предварительно настроен на использование встроенной базы данных Derby (также известной как JavaDB , часть SDK) и использует соглашение о конфигурации для поиска тестовых данных. Он также может одним вызовом создать тестовую БД из файла .ddl. Помимо упрощения настройки, он содержит несколько утилит для упрощения тестирования, таких как getDataSource () (необходим для тестирования Spring JDBC ) и RowComparator .

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

Вот семь простых шагов для запуска теста базы данных:

  1. Добавьте двоичные файлы: добавьте dbunit-embeddedderby-parenttest 1.2.0 в ваши зависимости (примечание: в будущих версиях он будет переименован в dbunit-express)
<dependency>
 	<groupId>net.jakubholy.testing</groupId>
	<artifactId>dbunit-embeddedderby-parenttest</artifactId>
	<version>1.2.0</version>
	<scope>test</scope>
</dependency>

<dependency> <!-- won't be required in future versions -->
	<groupId>org.slf4j</groupId>
	<artifactId>slf4j-simple</artifactId>
	<version>1.5.6</version>
	<scope>test</scope>
</dependency>
  1. Создайте папку testData / в корневой папке вашего проекта.
  2. (необязательно) Подготовьте .ddl : скопируйте пример testData / create_db_content.ddl в новый testData / и измените его в соответствии со своими требованиями к схеме данных.
  3. (необязательно) Создание и инициализация БД : Запустите DatabaseCreator # main из корневой папки вашего проекта, чтобы создать и инициализировать тестовую БД из файла .ddl.
  4. Напишите TestCase : либо создайте подкласс AbstractEmbeddedDbTestCase, либо создайте и используйте экземпляр EmbeddedDbTester в своем классе тестирования и реализуйте там свои тесты. (См. SimpleEmbeddedDbTest.java и SimpleNonExtendingEmbeddedDbTest.java для вдохновения.) Вы можете переопределить его getDataSet (), если хотите использовать st. кроме стандартного testData / dbunit-test_data_set.xml.
  5. Подготовьте тестовые данные : скопируйте пример testData / dbunit-test_data_set.xml в ваши новые testData / и измените его в соответствии с вашими потребностями в данных. Любая таблица, упомянутая в файле, будет очищена перед запуском теста, если в ней есть какие-либо определенные строки, которые также будут вставлены

    • Вы можете использовать, например, Jailer (хороший учебник ) для создания подмножества вашей базы данных в формате DbUnit XML (к сожалению, только Flat XML) или другого поддерживающего ее инструмента, такого как QuantumDB .
  6. Запустите тест .

Вы можете прочитать больше о DbUnit Express на его домашней странице .

PS: последняя выпущенная версия 1.2.0 от 4/2010, новая версия должна выйти через несколько недель.

 

От http://theholyjava.wordpress.com/2011/07/27/having-database-test-ready-in-10-minutes-with-dbunit-express/