3

我正在尝试在 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”是数字,因此比较失败。有任何想法吗?

4

0 回答 0