Prueba de la unidad Android con Volley

¿Es posible escribir una prueba de unidad para mi aplicación de Android donde uso Volley para la solicitud de red. Por ejemplo Quiero escribir una prueba de unidad para una función de registro en la que en una solicitud de volea con las credenciales de los usuarios y comprobar un objeto de usuario válido en la respuesta. ¿Alguien ha hecho algo similar? Proporcione ejemplos o referencias.

Este es mi método de acceso:

public void login() { try { JSONObject jsonRequest = new JSONObject(); String emailString = email.getText().toString(); jsonRequest.put("email", emailString); String passwordString = password.getText().toString(); jsonRequest.put("password", passwordString); NetworkUtil.postLogin(new Listener<User>() { @Override public void onResponse(User response) { setUser(response); onUserSuccess(); } }, new ErrorListener("postLogin") { @Override public void onErrorResponse(VolleyError error) { super.onErrorResponse(error); onUserError(error); } }, jsonRequest); } catch (Exception e) { } 

Y mi método postLogin sería algo así como añadir una solicitud de volea:

  public static void postLogin(Listener<User> listener, ErrorListener errorListener, JSONObject jsonRequest) { VolleySingleton .getInstance() .getRequestQueue() .add(new GsonRequest<User>(getUrl("login"), "user_profile", User.class, jsonRequest, Method.POST, listener, errorListener)); } 

Sugerimos que utilice CountDownLatch para esperar la respuesta de volea para que pueda hacer la prueba. De lo contrario, la prueba finalizará antes de la respuesta.

En su clase de prueba de unidad usando:
final CountDownLatch signal = new CountDownLatch(1); /** your code here wait for response**/ signal.await(); /** your code here**/

En el método de respuesta on debe agregar signal.countDown();

aquí está el enlace de referencia https://github.com/loopj/android-async-http/issues/173

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.