Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 模拟复杂的api调用_Java_Spring - Fatal编程技术网

Java 模拟复杂的api调用

Java 模拟复杂的api调用,java,spring,Java,Spring,我在理解复杂api调用中的spring@MockBean时遇到了一些问题: serviceCommunication.callAPI(HttpMethod.POST, ServiceCommunication.TokenType.TokenTypeApplication, "document-service",

我在理解复杂api调用中的spring@MockBean时遇到了一些问题:

serviceCommunication.callAPI(HttpMethod.POST,
                                    ServiceCommunication.TokenType.TokenTypeApplication,
                                    "document-service",
                                    URIConstants.CREATE_DOCUMENT,
                                    docDTO,
                                    new ParameterizedTypeReference<ApiResultResponse<String>>() {
                                    });
serviceCommunication.callAPI(HttpMethod.POST,
ServiceCommunication.TokenType.TokenTypeApplication,
“文件服务”,
URIConstants.CREATE_文档,
docDTO,
新的ParameteredTypeReference(){
});
我在考试前模拟了以下内容:

when(serviceCommunication.callAPI(eq(HttpMethod.POST),
                any(ServiceCommunication.TokenType.class),
                eq("document-service"),
                eq(URIConstants.CREATE_DOCUMENT),
                any(),
                eq(new ParameterizedTypeReference<ApiResultResponse<String>>() {}))).thenReturn(new ApiResultResponse<>(documentID));
when(serviceCommunication.callAPI(eq(HttpMethod.POST)),
任何(ServiceCommunication.TokenType.class),
eq(“文件服务”),
eq(创建文档),
any(),
eq(新的参数化类型引用(){})),然后返回(新的ApiResultResponse(documentID));
但是我得到了一个空的结果,我错在哪里


高级感谢

我解决了,我模拟了任务执行器,问题是当在另一个线程中调用mock bean时

我发现在创建mock的同一个线程中调用调用时,调用有效,但在单独的线程中调用时无效。您的问题可能是matchers eq的最后一次对齐(new ParameteredTypeReference(){})您指定它是ParameteredTypeReference的一个新实例的eq,然后用另一个实例调用。您尝试过any(ParameteredTypeReference.class)吗?