junit.framework.ComparisonFailure:
value (table=XXX, row=XXX, col=XXX)
expected:<2013-01-18 18:17:13.233099>
but was:<2013-01-18 18:17:13.233099>
at org.dbunit.assertion.JUnitFailureFactory.createFailure(JUnitFailureFactory.java:39)...
我的代码:
...
IDataSet actualDataSet = conn.createDataSet();
XmlDataSet expectedDataSet = new XmlDataSet(getClass().getResourceAsStream("/data.xml"));
Assertion.assertEquals(expectedDataSet, actualDataSet);
...
conn - 与数据库PostgreSql 7.1的连接
有什么问题?
答案 0 :(得分:1)
很难说没有更多信息,但看起来该类可能存在问题,表示“table = XXX,row = XXX,col = XXX”中的值。那是什么数据类型?一些“约会”式课程?它是否正确实现了equals()
?
JUnit等人的一个常见问题。是对assertEquals
不按值进行比较的类型使用equals()
- 然后比较总是产生false
。这看起来像是其中一种情况。
答案 1 :(得分:0)
org.dbunit.dataset.datatype.TimestampDataType.typeCast()
转换为Timestamp,然后转换为其他类比较对象。我不明白为什么它不起作用。
为避免此问题,我排除了列:
String[] actualTablenames = actualDataSet.getTableNames();
for (int i = 0; i < actualTableNames.length; i++) {
ITable expectedTable = expectedDataSet.getTable(actualTableNames[i]);
...
ITable filteredActualTable = DefaultColumnFilter.excludedColumnsTable(actualTable, new String[]{"changetime"});