【问题标题】:EasyMock Expectation with a void method and an object array as argument?使用 void 方法和对象数组作为参数的 EasyMock 期望?
【发布时间】:2012-05-01 14:52:46
【问题描述】:

在使用 EasyMock 为 void 方法设置期望值时,是否可以指定一个 Object 数组作为该方法的参数之一?

例如,如果我们有这样的事情:

Errors mockErrors = createMock(Errors.class);
...
mockErrors.rejectValue(Object[]{"5", "2"});
mockErrors.replay();

classUnderTest.someMethod();

在 ClassUnderTest 中,someMethod 调用 rejectValue(Object[]{"5", "2"});

然而,尽管期望被设置为被调用的确切内容,easy mock 还是会抱怨意外的方法调用。

>     Unexpected method call rejectValue(["5", "2"]):
>         rejectValue(["5", "2"]): expected: 1, actual: 0

我认为这是因为在底层它依赖于 Object[] 上的 equals 方法,并且由于两者不同,它返回 false 并且不满足条件。

有办法解决吗?由于我没有使用 expect() 设置期望,所以我可以使用 any()...有没有办法在 void 方法上做同样的事情?

【问题讨论】:

    标签: java unit-testing mocking testng easymock


    【解决方案1】:
    mockErrors.rejectValue(aryEq(new Object[] {"5", "2"}));
    

    详情请参阅the javadoc

    【讨论】:

    猜你喜欢
    • 2013-06-12
    • 1970-01-01
    • 2012-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-05
    相关资源
    最近更新 更多