2010-01-21 6 views
17

Я использую DbUnit для модульного тестирования моих объектов DAO. До сих пор он отлично работает.DbUnit и двоичные данные

У меня проблема, у меня есть поле ob типа byte[], которое хранится как BLOB в базе данных. Столбец не является нулевым. Как я могу указать значение для этого столбца в файле набора данных XML, который использует DbUnit? Значение может быть ничем не интересным, 5 байт будет достаточно. Я бы хотел избежать необходимости создавать дополнительные двоичные файлы только для этого.

Любые предложения?

ответ

23

В конце концов я решил это так:

XML набор данных файла:

 
<?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 имеет встроенную поддержку для Base64 закодированных данных, правильно transformes в массив байтов.

Тестовый код случай:

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

Это работает с NDbUnit, а если определить его в файле данных XML: ' MjBxdxxY7NbME2Ha6DKhepVpwio =' –

+0

Например, кодирование base64 в Postgres: 'select encode ('12345', 'base64');' –

Смежные вопросы