0

我坚持对我的 DAO 进行更新测试。更新方法工作得很好,但最后我得到了一个例外:

junit.framework.ComparisonFailure: value (table=theme, row=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);
}

这是数据集。主题数据.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>

预期主题数据.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>
4

1 回答 1

0

可能您的 id 值是自动递增的,而您正在做的是一个新的插入。您必须通过 id 找到行,然后对其进行修改。检查数据库中更新后的行。

于 2016-11-23T13:16:43.980 回答