在mockito中创buildOkHttpClient时如何解决java.lang.AssertionError?

我正在尝试做一些jar头networking响应。 我有实际的请求的JSON响应,我有Retrofit接口序列化响应。 试图设置这一点,我感到无比沮丧。 我应该在这里做什么? 看来我的select是,1)使用MockWebServer()2)使用RequestInterceptor()。

当试图使用1或2时,我不能为我的生活实例化一个OkHttpClient()没有它失败,基本上这使我立即死亡的每一件事。 我得到一个java.lang.AssertionError,因为OkHttpClient在找不到TLSalgorithm时抛出了这个。

if (builder.sslSocketFactory != null || !isTLS) { this.sslSocketFactory = builder.sslSocketFactory; } else { try { SSLContext sslContext = SSLContext.getInstance("TLS"); sslContext.init(null, null, null); this.sslSocketFactory = sslContext.getSocketFactory(); } catch (GeneralSecurityException e) { **throw new AssertionError(); // The system has no TLS. Just give up.** } } 

我已经尝试使用unMock保持android.jar中的“javax.net.ssl”类,但是没有解决这个错误。

 unMock { // URI to download the android-all.jar from. eg https://oss.sonatype.org/content/groups/public/org/robolectric/android-all/ downloadFrom 'https://oss.sonatype.org/content/groups/public/org/robolectric/android-all/4.3_r2-robolectric-0/android-all-4.3_r2-robolectric-0.jar' keep "android.util.Log" keep "javax.net.ssl" } 

所以基本上,我已经遇到了各种各样的例子,如何用改造2来模拟networking请求,但是我无法摆脱这个障碍,而且我感觉很失败。 我还没有看到任何人有这个问题,我很困惑如何每个人都很容易在所有的testing中实例化新的OkHttpClient。

以下是我正在使用的相关依赖项。

      testCompile 'junit:junit:4.12' testCompile 'org.mockito:mockito-all:1.10.19' testCompile 'org.powermock:powermock-mockito-release-full:1.6.4' testCompile 'org.powermock:powermock-module-junit4:1.6.4' testCompile 'org.easymock:easymock:3.4' testCompile 'org.powermock:powermock-api-easymock:1.6.4' testCompile 'com.squareup.okhttp3:mockwebserver:3.2.0' compile 'com.squareup.retrofit2:retrofit:2.0.0' compile 'com.squareup.retrofit2:converter-gson:2.0.0' compile 'com.squareup.okhttp3:logging-interceptor:3.0.1' compile 'com.google.code.gson:gson:2.4' 

    Related of "在mockito中创buildOkHttpClient时如何解决java.lang.AssertionError?"

    您需要在课程顶部的这个注释。 当然。

     @PowerMockIgnore("javax.net.ssl.*")