Тест Android Unit с Volley

Можно ли написать единичный тест для моего приложения для Android, где я использую Volley для сетевого запроса. Например. Я хочу написать единичный тест для функции входа в систему, когда я отправляю запрос волейбола с учетными данными пользователей и проверяю на действительный пользовательский объект в ответе. Кто-нибудь сделал что-то подобное? Просьба предоставить примеры или ссылки.

Это мой метод входа в систему:

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

И мой метод postLogin будет чем-то вроде добавления запроса волейбола:

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

Предложите вам использовать CountDownLatch для ожидания ответа волейбола, чтобы вы могли выполнить тест. В противном случае ваш тест завершится до ответа.

В вашем классе тестирования, используя:
final CountDownLatch signal = new CountDownLatch(1); /** your code here wait for response**/ signal.await(); /** your code here**/

В методе on response вы должны добавить signal.countDown();

Здесь ссылка ссылки https://github.com/loopj/android-async-http/issues/173

Intereting Posts