我正在使用的一种静态方法,它做了两件事。它返回一些数据,但它也修改了传递给它的参数对象。这个更新的参数对象随后在代码中使用。
我正在使用 PowerMock 来模拟返回行为。
为了定义第二部分 - 更新输入参数,我定义了 doAnswer 方法,但它不起作用。我尝试测试的方法如下所示。
public void login() throws ConnectionException, AsyncApiException {
ConnectorConfig partnerConfig = new ConnectorConfig();
//This call sets the value in one member variable 'serviceEndPoint in ParterConfig which is accessed later in this method only.
partnerConnection = Connector.newConnection(partnerConfig);
//partnerConfig.getServiceEndpoint is called.
PowerMockito.mockStatic(Connector.class);
when(Connector.newConnection(Mockito.any(ConnectorConfig.class))).thenReturn(partnerConnection);
PowerMockito.doAnswer(new Answer<Void>() {
@Override
public Void answer(InvocationOnMock invocation) {
ConnectorConfig config = (ConnectorConfig) invocation.getArguments()[0];
config.setServiceEndpoint("service end point");
return null;
}
}).when(Connector.newConnection(Mockito.any(ConnectorConfig.class)));
}
但上面会抛出错误,提示“此处检测到未完成的存根”。
Connector
是第三方类,所以我无法控制它的行为。
任何建议,可能会出现什么问题?