Y dice así:
Si desarrollas aplicaciones que acceden a datos relacionales necesitas verificar el código de tu aplicación trabaje con los datos, como fue diseñado. Cuando usas Hibernate o algún otro framework que implemente JPA, deberías confirmar que tus mapeos dirijan a Hibernate para almacenar y recuperar la información correctamente. Yo implemento este tipo de pruebas usando JUnit. Nadie puede refutar que las pruebas contra una base de datos activa es fundamental - no hay una mejor forma para verificar tus mapeos.
Pero para probar contra la base de datos se requiere que los datos se encuentren en un estado inicial. Puedes cargar la base de datos manualmente antes de correr tu prueba pero eso se vuelve monotono y propenso a errores. DBUnit resuelve este problema. Este puede precargar la base de datos para cada una de tus pruebas, basado en un grupo de datos dentro de un xml (comúnmente llamado dataset). El formato de este dataset es sencillo de entender; aquí hay un ejemplo de tres tablas de una base de datos MySQL. Los nombres de los elementos empatan con los nombres de las tablas y sus atributos con los nombres de sus columnas. Cada elemento implica un registro en esa tabla.
<dataset> <cliente id_cliente="778899" id_estatus = "1" id_sucursal="98765"/> <banco id_banco="1" nombre="BNMX" descripcion="Banamex" activo="1" valor="0"/> <pago id_cliente = "778899" id_estatus = "1" id_tipo_producto = "1" id_promotor = "1" id_sucursal = "58" /> </dataset>
Para una base de datos pequeña donde solo necesitas cargar unas pocas tablas con unos pocos registros puedes crear el dataset manualmente. Pero seguramente no querás hacerlo con una base de datos empresarial compleja que contiene cientos de tablas con nombres de columnas complejas. Es más facil si le permites a DbUnit extraer los datos por ti.