2010-01-21 15 views
17

Ich benutze DbUnit für Komponententests meiner DAO-Objekte. Es funktioniert bisher großartig.DbUnit und binäre Daten

Ich habe ein Problem, ich habe Feld ob Typ byte[], die als BLOB in der Datenbank gespeichert ist. Die Spalte ist nicht-null. Wie kann ich den Wert für diese Spalte in der XML-Dataset-Datei angeben, die DbUnit verwendet? Der Wert kann nichts Besonderes sein, 5 Bytes reichen aus. Ich möchte die Notwendigkeit vermeiden, zusätzliche Binärdateien nur dafür zu erstellen.

Irgendwelche Vorschläge?

Antwort

23

Schließlich ich es so gelöst:

XML-Datensatz-Datei:

 
<?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 hat eingebaute Unterstützung für Base64-codierte Daten, es Linie umgewandelt korrekt in Byte-Array.

Testfall Code:

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

Der mit NDbUnit funktioniert auch, wenn Sie es in Ihrer XML-Datendatei definieren: ' MjBxdxxY7NbME2Ha6DKhepVpwio =' –

+0

Zum Beispiel Base64-Codierung in Postgres: 'select encode ('12345', 'base64');' –