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的连接
怎么啦?
发布于 2013-01-19 13:36:47
如果没有更多的信息,很难说,但是在表示"table=XXX,row=XXX,col=XXX“中的值的类中可能会出现问题。那是什么数据类型?一些“约会”-like类?它是否正确地实现了equals()
JUnit等人的一个常见问题。将assertEquals用于equals()不按值进行比较的类型,然后比较总是生成false。这看起来像是其中一个案子。
发布于 2013-01-21 11:43:21
org.dbunit.dataset.datatype.TimestampDataType.typeCast()强制转换为时间戳,然后其他类比较对象。我不知道为什么它不起作用。
为了避免这个问题,我排除了列:
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"});https://stackoverflow.com/questions/14412697
复制相似问题