2016-10-12 4 views
0

Я застрял с обновлением для моего DAO. Метод обновления работает так же хорошо, но в конце я получаю исключение:Почему я получаю исключение CompassionFailure от DbUnit?

junit.framework.ComparisonFailure: значение (таблица = тема, строка = 0, Col = Id) ожидаемый: < [1]> но : < [97]>

Вот мой тест:

@Test 
@DatabaseSetup("/ThemeData.xml") 
@DatabaseTearDown("/clear.xml") 
@ExpectedDatabase(value = "/ExpectedThemeData.xml", assertionMode = DatabaseAssertionMode.NON_STRICT_UNORDERED) 
public void testThemeUpdate(){ 
    String newDescription = "Childhood"; 
    String oldDescription = "Sport"; 
    Theme th = new Theme("Sport"); 

    th.setDescription(newDescription); 
    int affectedRows = themeDAO.update(th, oldDescription); 

    System.out.println(th); 

    assertEquals(1, affectedRows); 
} 

А вот DataSets. ThemeData.xml:

<?xml version="1.0" encoding="UTF-8" ?> 
<dataset> 
    <!--News Table --> 
    <THEME Id="1" Description="Sport"/> 
    <THEME Id="2" Description="Cinema"/> 
    <THEME Id="3" Description="Politics"/> 
</dataset> 

ExpectedThemeData.xml:

<?xml version="1.0" encoding="UTF-8" ?> 
<dataset> 
    <!--News Table --> 
    <THEME Id="1" Description="Childhood"/> 
    <THEME Id="2" Description="Cinema"/> 
    <THEME Id="3" Description="Politics"/> 
</dataset> 

ответ

0

Возможно ваше значение идентификатор автоинкрементный и то, что вы делаете, это новая вставка. Вы должны найти строку по id, а затем изменить ее. Проверьте строки после обновления в вашей БД.