2010-01-21 50 views
17

Tôi sử dụng DbUnit để kiểm tra đơn vị đối tượng DAO của tôi. Nó hoạt động tuyệt vời cho đến nay.DbUnit và dữ liệu nhị phân

Tôi gặp sự cố, tôi có loại ob trường byte[] được lưu trữ dưới dạng BLOB trong cơ sở dữ liệu. Cột không phải là rỗng. Làm cách nào tôi có thể chỉ định giá trị cho cột này trong tệp tập dữ liệu XML, mà DbUnit sử dụng? Giá trị có thể không có gì lạ mắt, 5 byte sẽ là đủ. Tôi muốn tránh sự cần thiết phải tạo thêm các tệp nhị phân chỉ cho việc này.

Mọi đề xuất?

Trả lời

23

Sau khi tất cả Tôi giải quyết nó như thế:

XML dữ liệu file:

 
<?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 đã xây dựng-in hỗ trợ cho dữ liệu được mã hóa Base64, nó transformes một cách chính xác vào mảng byte.

kiểm tra mã trường hợp:

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

này làm việc với NDbUnit cũng như nếu bạn định nghĩa nó trong tệp dữ liệu XML của bạn: ' MjBxdxxY7NbME2Ha6DKhepVpwio =' –

+0

Ví dụ, mã hóa base64 trong Postgres: 'select encode ('12345', 'base64');' –

Các vấn đề liên quan