Proxy transparente para probar las respuestas del servidor sin conexión en Android
Tengo un andamio de aplicaciones Android orientado a datos. Adición de pruebas, con el objetivo de una cobertura del 100%. Uso de OkHttp .
¿Cómo intercepto de forma transparente las llamadas a mi servidor con respuestas simuladas?
- Retrofit SocketTimeOutException al enviar datos multipartidarios o JSON en android
- Hacer la solicitud HTTP usando la biblioteca OkHttp dentro de doInBackground () de AsyncTask bloquea la operación de la interfaz de usuario
- Android OkHttp InputStream java.IOException.closed
- El fallo de conexión de Retrofit devuelve RetrofitError.response como null
- Obtención de solicitud de contenido corporal mediante el método POST de Retrofit 2.0
Quieres esto para-end-to-end, así como pruebas de unidad. Por ejemplo: la configuración de tipo de MockServer
a MockServer
debe cargar una aplicación que mostrará respuestas simuladas en el emulador.
- Error retrofit.RetrofitError: java.io.EOFException para Android
- Devolución de error de OKHttp interceptor (utilizando retrofit)
- Subida de archivos con okhttp
- OkHttp en android para realizar solicitudes de red
- ¿Necesito escribir un código de manejo de proxy personalizado para OkHttp en Android?
- Cómo agregar cabeceras a interceptor de solicitud OkHttp?
- Retrofit + OkHttp + GZIP-ed JSON
- Cookie de sesión no es persistente en Retrofit Android
¿Has mirado en okhttp mockwebserver ?
Lo utilizo para burlarse de las respuestas y verificar / mostrar las solicitudes.
Si desea usar esto con un tipo de compilación, puede generar un recurso de Android o una constante de java en gradle y, a continuación, inicie el servidor y establezca la ruta en consecuencia.
Para una unidad de pruebas, debe ser capaz de escribir su código de tal manera que aislar el uso de OkHttp. Al hacer esto, puede burlar al cliente (usando algo como Mockito ) y hacer que se comporte como quiera. Después de todo, en una prueba de unidad sólo queremos probar una sola pieza de código, no cualquiera de sus dependencias.
Algo así en Java. Del mismo modo, el patrón funciona en otros lugares (como Javascript)
public class ClassUnderTest { private final OkHttpClient client; public ClassUnderTest(OkHttpClient client) { this.client = client; } // Other code... } // In your tests OkHttpClient mockClient = mock(OkHttpClient.class); when(mockClient.newCall(any(Request.class)).thenThrow(...); ClassUnderTest testClass = new ClassUnderTest(mockClient); verify(mockClient).doSomething();
Para las pruebas de integración, mockwebserver parece ser su mejor apuesta (como otros han mencionado).
- Ionic en Windows: Android SDK instalado. Sigue recibiendo "Error: Instala Android target:" android-22 "
- ¿Cómo comprobar si un EditText fue cambiado o no?