2010-01-21 18 views
17

Uso DbUnit para probar unidades de mis objetos DAO. Funciona muy bien hasta ahora.DbUnit y datos binarios

Tengo un problema, tengo el campo ob type byte[] que se almacena como BLOB en la base de datos. La columna no es nula. ¿Cómo puedo especificar el valor para esta columna en el archivo de datos XML que usa DbUnit? El valor no puede ser nada sofisticado, 5 bytes serán suficientes. Me gustaría evitar la necesidad de crear archivos binarios adicionales solo para esto.

¿Alguna sugerencia?

Respuesta

23

Después de todo lo resolví así:

XML archivo de conjunto de datos:

 
<?xml version="1.0" encoding="UTF-8"?> 
<dataset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > 
    <!-- image_content is string '12345' Base64 encoded --> 
    <IMAGE IMAGE_ID="1" IMAGE_CONTENT="MTIzNDU="/> 
</dataset> 

DbUnit ha incorporado en el soporte para datos codificados en Base64, que transformes correctamente en el conjunto de bytes.

Prueba de código de caja:

 
assertEquals("12345".getBytes(), image.getContent()); 
+1

Esto funciona con NDbUnit así si se define en el archivo de datos XML: ' MjBxdxxY7NbME2Ha6DKhepVpwio =' –

+0

Por ejemplo, la codificación base64 en Postgres: 'select codificar ('12345', 'base64');' –