当使用easymock时,以下语句会产生错误:
expect(service.findFoos(criteria, maxResults, aryEq(sortCriteria))).andReturn(expectedResult)
错误如下:
java.lang.IllegalStateException: 3 matchers expected, 1 recorded
easymock中的规则是这样的:
如果你为了一个参数使用了一个参数匹配者,那么你必须对其他参数也使用参数匹配者。上述的aryEq使用了ArrayEquals的匹配者,因此其他参数必须使用参数匹配者
修改如下:
expect(service.findFoos(isA(criteria), eq(maxResults), aryEq(sortCriteria))).andReturn(expectedResult)