【问题标题】:EasyMock expect to call method with Collection type of parameterEasyMock 期望使用 Collection 类型的参数调用方法
【发布时间】:2010-12-03 13:09:37
【问题描述】:

我遇到了问题:

expect(dao.save(collectionOfElements)).andReturn(otherCollection);

当我重播时,我调用这个 DAO 方法,然后我得到 ​​p>

Unexpected method call save(someObj1, someObj2) 
save(someObj1, someObj2): expected: 1, actual: 0

来自意外调用的 someObj1 等于来自预期调用的 someObj1 并且元素的顺序相同。

一开始我是这样解决的:

expect(dao.save(isA(Collecion.class))).andReturn(otherCollection);

但现在我必须测试我的服务类调用 dao.save 是否包含恰好包含 2 个元素的集合,因此 isA(Collecion.class) 不再起作用。

如何解决这个问题?比你。

【问题讨论】:

    标签: java unit-testing collections easymock


    【解决方案1】:

    问题可能是第一个 someObj1 和第二个 someObj1 具有相同的 toString(因此看起来相同)但它们不是 equals() == true。

    我会检查集合的元素是否与您的内容相同。

    【讨论】:

    • 是的,someObj 包含 org.joda.DateTime 类型变量,这会导致问题,因为它没有 hasCode 和 equals 方法..
    猜你喜欢
    • 2013-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-04
    相关资源
    最近更新 更多