为什么我收到DbUnit ComparsionFailure异常?

时间:2016-10-12 10:19:43

标签: java dataset spring-test-dbunit

我坚持使用DAO的更新测试。 Update方法工作正常,但最后我得到一个例外:

  < [1]> [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>

1 个答案:

答案 0 :(得分:0)

可能你的id值是自动增量的,你正在做的是一个新的插入。您必须按ID查找行,然后进行修改。在数据库中更新后检查行。