2016-04-07 3 views
1

Я использую DBUnit в моем Spring основанного тест через простирающийся класс DBTestCase в моем тестовом классе, который работает с помощью "SpringJUnit4ClassRunner '.Как использовать DBUnit с несколькими базами данных/источниками данных в Spring

вещи работают хорошо, однако в моей реальной жизни приложения, таблицы разбросаны по нескольким DB Schemas, поэтому у меня есть несколько DATASOURCE бобы, определенные в моем Spring Content XML.

Так при настройке DBUnit, необходимо переопределить метод newDatabaseTester, чтобы предоставить ему например IDatabaseTester, при создании «DataSourceDatabaseTester» боб принимает только одного источника данных в конструкторе.

Кто-нибудь знает о правильном способе настройки DBUnit в этом случае, или есть ли какой-то образец проекта, к которому я могу получить доступ, который это реализовал? Благодаря !!

ответ

0

Вы можете взглянуть на https://github.com/springtestdbunit/spring-test-dbunit#working-with-multiple-connections, эта библиотека помогает упростить конфигурацию тестов DBUnit и обеспечивает импорт наборов данных в разные источники данных.

+0

Спасибо, я видел это, и кажется, что библиотека работает только в том случае, если вы предоставляете файлы XML для наборов данных; однако вместо этого я хочу запросить наборы данных из другой базы данных (набор БД), поэтому каждый источник данных будет использовать другую тестовую схему для запроса данных. Я все еще смотрю на это, потому что сейчас у меня нет другого выбора. –

+0

Вы можете расширить AbstractDataSetLoader и указать свою реализацию в @DbUnitConfiguration (dataSetLoader = YourDataSetLoader.class) – Monk3D

+0

Также я понимаю совет, но это не так просто. AbstractDataSetLoader указывает параметр типа «Resource» для переопределяемого метода, и абстрактный класс проверяет, есть ли «resource.exists()», поэтому я даже не могу отправлять имена таблиц с помощью этого поля. Вместо этого мне нужно будет изменить AbstractDataSetLoader, такую ​​проблему. Проект предназначен для Java 8, поэтому он даже не компилируется, и мне понадобится более старая версия. –