我坚持使用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>
答案 0 :(得分:0)
可能你的id值是自动增量的,你正在做的是一个新的插入。您必须按ID查找行,然后进行修改。在数据库中更新后检查行。