0

当使用 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 方法上做同样的事情?

4

1 回答 1

6
mockErrors.rejectValue(aryEq(new Object[] {"5", "2"}));

有关详细信息,请参阅javadoc

于 2012-05-01T15:59:12.610 回答