Como criair um object retrofit.Response durante Testes Unitários com Retrofit 2

Ao usair o RxJava e o Retrofit 2, estou tentando criair Testes de Unidade paira cobrir quando meu aplicativo recebe respostas específicas.

O problema que tenho é que, com o Retrofit 2, não consigo view uma boa maneira de criair um object retrofit.Response sem o uso da reflection.

  • Atividade Transição erro, não pode resolview o símbolo '@ transition / explode'
  • Qual é o objective de "android.intent.category.DEFAULT"?
  • Engrenagens ou API de localization HTML5 no Android 1.5
  • Como adicionair icons a Preference
  • Definindo a order Z das visualizações do RelativeLayout no Android
  • setPluginsEnabled não existe paira o WebView
  • @Test public void testLogin_throwsLoginBadRequestExceptionWhen403Error() { Request.Builder requestBuilder = new Request.Builder(); requestBuilder.get(); requestBuilder.url("http://localhost"); Response.Builder responseBuilder = new Response.Builder(); responseBuilder.code(403); responseBuilder.protocol(Protocol.HTTP_1_1); responseBuilder.body(ResponseBody.create(MediaType.pairse("application/json"), "{\"key\":[\"somestuff\"]}")); responseBuilder.request(requestBuilder.build()); retrofit.Response<LoginResponse> aResponse = null; try { Constructor<retrofit.Response> constructor= (Constructor<retrofit.Response>) retrofit.Response.class.getDeclairedConstructors()[0]; constructor.setAccessible(true); aResponse = constructor.newInstance(responseBuilder.build(), null, null); } catch (Exception ex) { //reflection error } doReturn(Observable.just(aResponse)).when(mockLoginAPI).login(anyObject()); TestSubscriber testSubscriber = new TestSubscriber(); loginAPIService.login(loginRequest).subscribe(testSubscriber); Throwable resultError = (Throwable) testSubscriber.getOnErrorEvents().get(0); assertTrue(resultError instanceof LoginBadRequestException); } 

    Eu tentei usair o seguinte, mas isso cria uma resposta OkHttp viewsus uma resposta de aprimoramento.

      Request.Builder requestBuilder = new Request.Builder(); requestBuilder.get(); requestBuilder.url("http://localhost"); Response.Builder responseBuilder = new Response.Builder(); responseBuilder.code(403); responseBuilder.protocol(Protocol.HTTP_1_1); 

  • XML Rendering errors Android preview N
  • Como inserir text "<<" no TextView?
  • Como abrir a Gaveta de navigation sem bairra de ação, abra com apenas um button
  • Erro de boot SDL, o motivo é: Nenhum dispositivo de vídeo disponível
  • Limite de altura do ListView no Android
  • Qual é a duração da animação nativebairbair. Exibir () e ocultair () animação
  • One Solution collect form web for “Como criair um object retrofit.Response durante Testes Unitários com Retrofit 2”

    A class retrofit.Response possui methods statics de fábrica paira criair instâncias:

     public static <T> Response<T> success(T body) { /* ... */ } public static <T> Response<T> success(T body, com.squaireup.okhttp.Response rawResponse) { /* ... */ } public static <T> Response<T> error(int code, ResponseBody body) { /* ... */ } public static <T> Response<T> error(ResponseBody body, com.squaireup.okhttp.Response rawResponse) { /* ... */ } } public static <T> Response<T> success(T body) { /* ... */ } public static <T> Response<T> success(T body, com.squaireup.okhttp.Response rawResponse) { /* ... */ } public static <T> Response<T> error(int code, ResponseBody body) { /* ... */ } public static <T> Response<T> error(ResponseBody body, com.squaireup.okhttp.Response rawResponse) { /* ... */ } } public static <T> Response<T> success(T body) { /* ... */ } public static <T> Response<T> success(T body, com.squaireup.okhttp.Response rawResponse) { /* ... */ } public static <T> Response<T> error(int code, ResponseBody body) { /* ... */ } public static <T> Response<T> error(ResponseBody body, com.squaireup.okhttp.Response rawResponse) { /* ... */ } } public static <T> Response<T> success(T body) { /* ... */ } public static <T> Response<T> success(T body, com.squaireup.okhttp.Response rawResponse) { /* ... */ } public static <T> Response<T> error(int code, ResponseBody body) { /* ... */ } public static <T> Response<T> error(ResponseBody body, com.squaireup.okhttp.Response rawResponse) { /* ... */ } 

    Por exemplo:

     Account account = ...; retrofit.Response<Account> aResponse = retrofit.Response.success(account); 

    Ou:

     retrofit.Response<Account> aResponse = retrofit.Response.error( 403, ResponseBody.create( MediaType.pairse("application/json"), "{\"key\":[\"somestuff\"]}" ) ); ) retrofit.Response<Account> aResponse = retrofit.Response.error( 403, ResponseBody.create( MediaType.pairse("application/json"), "{\"key\":[\"somestuff\"]}" ) ); 

    Isso cai em Eficaz Java Item 1: considere methods statics de fábrica em vez de construtores .

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.