EasyMock 和通用参数

EasyMock and generic params

我正在尝试掌握 EasyMock 来模拟对 Jersey 客户端 APIs 的一些调用... 我正在尝试模拟对以下调用生成器 API 的调用:

<T> T post(Entity<?> entity, Class<T> responseType);

执行以下操作:

 EasyMock.expect(mockInvocationBuilder.post(Entity.json(request), Response.class)).andReturn(mockResponse).anyTimes();

这给了我以下错误:

java.lang.AssertionError: 
  Unexpected method call Builder.post(Entity{entity=com.ibm.apin.apim.request.CreateOrgRequest@936a7073, variant=Variant[mediaType=application/json, language=null, encoding=null], annotations=[]}, class javax.ws.rs.core.Response):

任何人都可以看到我在这里做错了什么以及我如何正确地模拟它吗?

参见EasyMock User Guide

To match an actual method call on the Mock Object with an expectation, Object arguments are by default compared with equals().

您必须覆盖 equals(), use a built-in argument matcher (like EasyMock#anyObject), write your own IArgumentMatcher or use a Capture