我正在尝试在 XML 文件中的表和数据库中的表之间的插入操作中进行 DbUnit 数据验证。我已经按“ID”对两个表进行了排序,然后在比较中忽略了它,因为它的值是自动递增的,我不知道它是什么,但排序不好。这是根据 DbUnit 文档的代码:
IDataSet databaseDataSet = getConnection().createDataSet();
ITable actualTable = databaseDataSet.getTable("TYPES");
FlatXmlDataSetBuilder flatXmlDataSetBuilder = new FlatXmlDataSetBuilder();
flatXmlDataSetBuilder.setColumnSensing(true);
FileInputStream fileInputStream = new FileInputStream(xml);
IDataSet expectedDataset = flatXmlDataSetBuilder.build(fileInputStream);
ITable expectedTable = expectedDataset.getTable("TYPES");
SortedTable sortedExpected = new SortedTable(expectedTable, new String[]{"ID"});
sortedExpected.setUseComparable(true);
SortedTable sortedActual = new SortedTable(actualTable, new String[]{"ID"});
sortedActual.setUseComparable(true);
Assertion.assertEqualsIgnoreCols(sortedExpected, sortedActual, new String[] {"ID"});
当前的 XML:
<?xml version="1.0" encoding="UTF-8"?>
<dataset>
<TYPES ID="7" PARENTESCO="Cónyuge" USUARIOMOD="W"/>
<TYPES ID="6" PARENTESCO="Hijo/a" USUARIOMOD="q"/>
<TYPES ID="3" PARENTESCO="Hijo/a" USUARIOMOD="q"/>
<TYPES ID="1" PARENTESCO="Padre/Madre politíco/a" USUARIOMOD="W"/>
<TYPES ID="4" PARENTESCO="Hijo/a" USUARIOMOD="q"/>
<TYPES ID="5" PARENTESCO="Cónyuge" USUARIOMOD="W"/>
<TYPES ID="1051" PARENTESCO="Primo" USUARIOMOD="A"/>
</dataset>
预期的 XML:
<?xml version="1.0" encoding="UTF-8"?>
<dataset>
<TYPES ID="7" PARENTESCO="Cónyuge" USUARIOMOD="W"/>
<TYPES ID="6" PARENTESCO="Hijo/a" USUARIOMOD="q"/>
<TYPES ID="3" PARENTESCO="Hijo/a" USUARIOMOD="q"/>
<TYPES ID="1" PARENTESCO="Padre/Madre politíco/a" USUARIOMOD="W"/>
<TYPES ID="4" PARENTESCO="Hijo/a" USUARIOMOD="q"/>
<TYPES ID="5" PARENTESCO="Cónyuge" USUARIOMOD="W"/>
<TYPES PARENTESCO="Primo" USUARIOMOD="A"/>
</dataset>
最后一行是插入的行。我没有指定 ID,因为我不知道它是什么。
排序后:
排序实际:
<TYPES ID="1" PARENTESCO="Padre/Madre politíco/a" USUARIOMOD="W"/>
<TYPES ID="1051" PARENTESCO="Primo" USUARIOMOD="A"/>
<TYPES ID="3" PARENTESCO="Hijo/a" USUARIOMOD="q"/>
<TYPES ID="4" PARENTESCO="Hijo/a" USUARIOMOD="q"/>
<TYPES ID="5" PARENTESCO="Cónyuge" USUARIOMOD="W"/>
<TYPES ID="6" PARENTESCO="Hijo/a" USUARIOMOD="q"/>
<TYPES ID="7" PARENTESCO="Cónyuge" USUARIOMOD="W"/>
排序预期:
<TYPES PARENTESCO="Primo" USUARIOMOD="A"/>
<TYPES ID="1" PARENTESCO="Padre/Madre politíco/a" USUARIOMOD="W"/>
<TYPES ID="3" PARENTESCO="Hijo/a" USUARIOMOD="q"/>
<TYPES ID="4" PARENTESCO="Hijo/a" USUARIOMOD="q"/>
<TYPES ID="5" PARENTESCO="Cónyuge" USUARIOMOD="W"/>
<TYPES ID="6" PARENTESCO="Hijo/a" USUARIOMOD="q"/>
<TYPES ID="7" PARENTESCO="Cónyuge" USUARIOMOD="W"/>
行顺序不正确,因为它被排序为字符串并且“ID”是数字,因此比较失败。有任何想法吗?