java.lang.NoSuchMethodError: okhttp3.internal.Internal.initializeInstanceForTests() When creating a Mock Server on Android
java.lang.NoSuchMethodError: okhttp3.internal.Internal.initializeInstanceForTests() When creating a Mock Server on Android
I tried to update the dependency but it did not work.
I am new to Android Unit testing and I want to test if the API call is successful or not. I am working on the Open Source Project on https://github.com/commons-app/apps-android-commons (leaderboard branch)
java.lang.NoSuchMethodError: okhttp3.internal.Internal.initializeInstanceForTests()V at okhttp3.mockwebserver.MockWebServer.<clinit>(MockWebServer.java:103) at fr.free.nrw.commons.leaderboard.LeaderboardApiTest.initTest(LeaderboardApiTest.java:35)
public class LeaderboardApiTest { MockWebServer server; @Before public void initTest() { server = new MockWebServer(); } @Before public void setUp() throws IOException { server.enqueue(new MockResponse().setBody("{\n" + " \"status\": 200,\n" + " \"username\": \"user\",\n" + " \"category_count\": 0,\n" + " \"limit\": null,\n" + " \"avatar\": \"avatar\",\n" + " \"offset\": null,\n" + " \"duration\": \"all_time\",\n" + " \"leaderboard_list\": [\n" + " {\n" + " \"username\": \"user\",\n" + " \"category_count\": 0,\n" + " \"avatar\": \"avatar\",\n" + " \"rank\": 1\n" + " }\n" + " ],\n" + " \"category\": \"used\",\n" + " \"rank\": 1\n" + "}")); server.start(); } @Test public void apiTest() throws IOException, JSONException { HttpUrl httpUrl = HttpUrl.parse(NetworkingModule.TEST_TOOLS_FORGE_URL); LeaderboardResponse response = sendRequest(new OkHttpClient(), httpUrl); Assert.assertEquals("avatar", response.getAvatar()); Assert.assertEquals("username", response.getUsername()); Assert.assertEquals(Integer.valueOf(0), response.getRank()); Assert.assertEquals(Integer.valueOf(0), response.getCategoryCount()); } private LeaderboardResponse sendRequest(OkHttpClient okHttpClient, HttpUrl httpUrl) throws IOException, JSONException { Request request = new Builder().url(httpUrl).build(); Response response = okHttpClient.newCall(request).execute(); if (response.isSuccessful()) { Gson gson = new Gson(); return gson.fromJson(response.body().toString(), LeaderboardResponse.class); } return null; } @After public void shutdown() throws IOException { server.shutdown(); } }