The problem is a conflict between the regular classloader and PowerMock
PowerMock . , .
. , PowerMock - .
, .
, PowerMock javax.net.ssl.HttpsURLConnection
, make. javax.net.ssl.HttpsURLConnection . , , PowerMock @PowerMockIgnore. .
@PowerMockIgnore({"javax.net.ssl.*"})
@PrepareForTest(android.util.Log.class)
public class DialogTest {
...
, PowerMock HttpsURLConnection
, HttpsURLConnection
factory HttpsURLConnection. .
public class HttpsUrlConnectionProvider {
public HttpsURLConnection getHttpsURLConnection(String dialogUri) throws IOException {
URL url = new URL(dialogUri);
return (HttpsURLConnection) url.openConnection();
}
}
HttpsURLConnection, HTTP.
final HttpsURLConnection mockUrlConnection = PowerMockito.mock(HttpsURLConnection.class);
PowerMockito.when(mockUrlConnection, "getResponseCode").thenReturn(200);
PowerMockito.when(mockUrlConnection, "getOutputStream").thenReturn(outputStream);
HttpsUrlConnectionProvider mockConnFactory = new HttpsUrlConnectionProvider() {
public HttpsURLConnection getHttpsURLConnection(String dialogUri) throws
IOException {
return mockUrlConnection;
}
};
dialog.setHttpsUrlConnectionProvider(mockConnFactory);