使用void方法和对象数组作为参数的EasyMock Expectation?

Ash*_*yan 0 java testng unit-testing easymock mocking

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

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

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

classUnderTest.someMethod();
Run Code Online (Sandbox Code Playgroud)

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

然而,尽管期望被设置为正在调用的内容,但是easy mock会抱怨意外的方法调用.

>     Unexpected method call rejectValue(["5", "2"]):
>         rejectValue(["5", "2"]): expected: 1, actual: 0
Run Code Online (Sandbox Code Playgroud)

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

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

JB *_*zet 6

mockErrors.rejectValue(aryEq(new Object[] {"5", "2"}));
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅javadoc.