gpt4 book ai didi

java - JUnit 和 Mockito - thenReturn 在 WebServiceTemplate 上使用时返回 null

转载 作者:行者123 更新时间:2023-12-01 18:10:13 32 4
gpt4 key购买 nike

我正在使用 Mochito,无法返回使用 marshalSendAndReceive 进行的 api 调用的模拟响应。

这里是服务 api 调用(其中 serviceRequest 的类型为 ValidateRequst,并且 HeaderCompositingCallback 实现 WebServiceMessageCallback)

public class ValidateClient extends WebServiceGatewaySupport {
...
ValidateResponse serviceResponse = (ValidateResponse) getWebServiceTemplate().marshalSendAndReceive(
serviceRequest, new HeaderComposingCallback(reqId));
..
}

这是 JUnit 测试中的模拟,validateResponse 是创建的对象,已填充值,但在运行下面的代码单元测试时始终返回空响应。

@RunWith(MockitoJUnitRunner.class)
public class ValidateServiceTest {
@Mock
WebServiceTemplate template;
....
when(template.marshalSendAndReceive(any(ValidateRequest.class),(WebServiceMessageCallback) any(HeaderComposingCallback.class))).thenReturn(validateResponse);
..
}

预期是接收非空对象的 validateResponse。

最佳答案

WebServiceGatewaySupport 在其构造函数中创建 WebServiceTemplate 的新实例。

确保您调用:

public final void setWebServiceTemplate(WebServiceTemplate webServiceTemplate)

将模拟注入(inject)到 WebServiceGatewaySupport

关于java - JUnit 和 Mockito - thenReturn 在 WebServiceTemplate 上使用时返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60480864/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com