2016-06-08 4 views
1

Я написал тестовый класс для Dao с помощью DbUnit и набора данныхКак проверить Dao с DBUnit за столом, не имеющий зимуют сущность

Вот мой класс:

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(locations = { "classpath:config/appContext-test.xml" }) 
@TestExecutionListeners({DependencyInjectionTestExecutionListener.class, DBUnitTestExecutionListener.class }) 
@DBUnitConfiguration(locations = { "testdata/mso_data.xml" }) 
public class TestMsoJobsDao{ 

@Resource 
private MsoJobsDao msoJobsDao; 

@Test 
public void testSaveMsoDataIntoTempTable() throws Exception{ 
List<Object[]> msoHeadendList = new ArrayList<Object[]>(); 
Timestamp timestamp1 = Timestamp.valueOf("2015-07-01 08:49:50"); 
Object[] obj1 = {"TEST_MSO_SERVICE_ID_3","America/Detroit","SL","1",timestamp1,"1",timestamp1}; 
msoList.add(obj1); 
msoJobsDao.saveMsoDataIntoTempTable(msoList); 
} 
} 

и набор данных:

<?xml version='1.0' encoding='UTF-8'?> 
<dataset> 
<mso_temp id="1" mso_service_id="TEST_MSO_SERVICE_ID_3" 
timezone="America/Detroit" customer_group="RC" created_by="1" 
created_date="2015-10-05 06:31:59" updated_by="1" 
updated_date="2015-10-05 06:31:59"/> 
</dataset> 

Когда я бегу мой тест, я получаю org.dbunit.dataset.NoSuchTableException: mso_temp

Моя проблема: мне не нужна никакая сущность, поскольку я подключаюсь к другой базе данных и сохраняю данные оттуда до временной таблицы в нашей базе данных приложений, используя PreparedStatement. Если я создам класс сущности, тестовый пример работает нормально.

Есть ли способ, с помощью которого DBUnit будет рассматривать таблицу, для которой нет класса сущности.

ответ

2

dbUnit не использует классы сущностей, он напрямую использует JDBC. Ошибка dbUnit - таблица не существует, а dbUnit не создает таблицы. Ваша установка приложения/теста создает таблицы из классов сущностей, поэтому без сущности таблица не существует.

Для необходимых таблиц без сущностей тестовая установка должна создавать эти таблицы. Для удобства вы можете просто поместить объект в папку тестовых классов. Другим вариантом является запуск DDL, который создает таблицы (таблицы) перед запуском всех тестов.

+0

Jeff благодарит за ответ, так что это означает, что если я создам класс сущности в тестовой папке, это не вызовет никаких проблем. –