2010-01-21 156 views
17

我使用DbUnit對我的DAO對象進行單元測試。迄今爲止它效果很好。DbUnit和二進制數據

我有一個問題,我有字段ob類型byte[]它存儲爲數據庫中的BLOB。該列不爲空。如何在DbUnit使用的XML數據集文件中指定此列的值?這個值可以不是什麼幻想,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 =' – 2011-04-14 21:24:35

+0

例如,在Postgres的base64編碼: 'select encode('12345','base64');' – 2016-02-01 14:47:05