私が使用している静的メソッドの1つは、2つのことです。いくつかのデータを返しますが、渡された引数オブジェクトも変更します。この更新された引数オブジェクトは、後でコードで使用されます。doAnswer静的メソッド - PowerMock
PowerMockを使用して復帰動作を模擬しています。
入力引数を更新する2番目の部分を定義するには、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
はサードパーティのクラスですので、私はその動作を制御できません。
何が間違っている可能性がありますか?
docリンクのthnx。私は明日それを試してみましょう。 – RandomQuestion
これは機能しました。私はバグを提出した。件名はポイントではありませんが、編集できないようです。 https://code.google.com/p/powermock/issues/detail?id=452&can=4&q=javadoc – RandomQuestion