Макет HttpResponse с робототехникой

Используя Robolectric 2.3-SNAPSHOT, я хочу протестировать объект, который будет выполнять запрос в фоновом режиме. Чтобы изолировать его, я пытаюсь высмеять возвращенный HttpResponse, но безуспешно после нескольких часов вложенных средств.

Я создал проект, который любой может клонировать. Симли беги./gradlew check https://github.com/Maragues/RobolectricDummyProject (мерзкий клонhttps://github.com/Maragues/RobolectricDummyProject.git)

я пробовал

Robolectric.setDefaultHttpResponse (200, "my_mocked_word");

MockWebServer (https://code.google.com/p/mockwebserver/)

Но тесты не пройдены, потому что они запрашивают реальный URL

  private static final String MOCKED_WORD = "MOCKED";

  @Test
  public void mockedRequestUsingMockServer() throws Exception {
    mMockWebServer.enqueue(new MockResponse().setBody(MOCKED_WORD));
    mMockWebServer.play();

    Robolectric.getFakeHttpLayer().interceptHttpRequests(false);
    Robolectric.getFakeHttpLayer().interceptResponseContent(false);

    String result = request.loadDataFromNetwork();

    assertEquals(MOCKED_WORD, result);
  }

  @Test
  public void mockedRequestUsingRobolectric() throws Exception {
    Robolectric.setDefaultHttpResponse(200, MOCKED_WORD);

    String result = request.loadDataFromNetwork();

    assertEquals(MOCKED_WORD, result);
  }

Код, выполняющий запрос

public String loadDataFromNetwork() throws Exception {
    // With Uri.Builder class we can build our url is a safe manner
    Uri.Builder uriBuilder = Uri.parse("http://robospice-sample.appspot.com/reverse").buildUpon();
    uriBuilder.appendQueryParameter("word", word);

    String url = uriBuilder.build().toString();

    HttpURLConnection urlConnection = (HttpURLConnection) new URL(url)
      .openConnection();
    String result = IOUtils.toString(urlConnection.getInputStream());
    urlConnection.disconnect();

    return result;
  }

Возможно связанные вопросы

Не удается перехватить HTTP-запрос с помощью робоэлектрика (Я попробовал это без успеха. Возможно, я что-то упустил)Кто-нибудь имел успех издеваться над HttpRequests с Robolectric? (Я не использую затмение)

Ответы на вопрос(3)

Ваш ответ на вопрос