Mock HttpResponse com Robolectric

Usando o Robolectric 2.3-SNAPSHOT, quero testar um objeto que executará uma solicitação em segundo plano. Para isolá-lo, estou tentando zombar do retorno do HttpResponse, sem sucesso após algumas horas investidas.

Eu criei um projeto que qualquer um pode clonar. Simly run./gradlew check https://github.com/Maragues/RobolectricDummyProject (clone githttps://github.com/Maragues/RobolectricDummyProject.git)

eu tentei

Robolectric.setDefaultHttpResponse (200, "my_mocked_word");

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

Mas os testes falham porque consultam o URL real

  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);
  }

O código que executa a solicitação

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;
  }

Perguntas possivelmente relacionadas

Não é possível capturar a solicitação HTTP com robolectric (Eu tentei isso sem sucesso. Talvez eu esteja perdendo alguma coisa)Alguém teve sucesso zombando de HttpRequests com Robolectric? (Eu não estou usando eclipse)

questionAnswers(3)

yourAnswerToTheQuestion