首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >junit.framework.ComparisonFailure:价值但价值是相等的

junit.framework.ComparisonFailure:价值但价值是相等的
EN

Stack Overflow用户
提问于 2013-01-19 08:55:30
回答 2查看 1.1K关注 0票数 0
代码语言:javascript
复制
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)...

我的代码:

代码语言:javascript
复制
    ...
    IDataSet actualDataSet = conn.createDataSet();
    XmlDataSet expectedDataSet = new XmlDataSet(getClass().getResourceAsStream("/data.xml"));               

    Assertion.assertEquals(expectedDataSet, actualDataSet);
    ...

conn -到数据库PostgreSql 7.1的连接

怎么啦?

EN

回答 2

Stack Overflow用户

发布于 2013-01-19 13:36:47

如果没有更多的信息,很难说,但是在表示"table=XXX,row=XXX,col=XXX“中的值的类中可能会出现问题。那是什么数据类型?一些“约会”-like类?它是否正确地实现了equals()

JUnit等人的一个常见问题。将assertEquals用于equals()不按值进行比较的类型,然后比较总是生成false。这看起来像是其中一个案子。

票数 1
EN

Stack Overflow用户

发布于 2013-01-21 11:43:21

代码语言:javascript
复制
org.dbunit.dataset.datatype.TimestampDataType.typeCast()

强制转换为时间戳,然后其他类比较对象。我不知道为什么它不起作用。

为了避免这个问题,我排除了列:

代码语言:javascript
复制
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"});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14412697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档