У меня есть приложение для Android, где основной частью приложения является класс APIcalls.java, где я делаю http-запросы для получения данных с сервера, отображая данные в приложении.
Я хотел создать unit test для этого класса Java, так как это большая часть приложения. Вот способ получения данных с сервера:
StringBuilder sb = new StringBuilder();
try {
httpclient = new DefaultHttpClient();
Httpget httpget = new HttpGet(url);
HttpEntity entity = null;
try {
HttpResponse response = httpclient.execute(httpget);
entity = response.getEntity();
} catch (Exception e) {
Log.d("Exception", e);
}
if (entity != null) {
InputStream is = null;
is = entity.getContent();
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
reader.close();
} catch (IOException e) {
throw e;
} catch (RuntimeException e) {
httpget.abort();
throw e;
} finally {
is.close();
}
httpclient.getConnectionManager().shutdown();
}
} catch (Exception e) {
Log.d("Exception", e);
}
String result = sb.toString().trim();
return result;
Я подумал, что могу сделать простые вызовы API из тестов следующим образом:
api.get("www.example.com")
Но каждый раз, когда я делаю некоторые HTTP-вызовы из тестов, я получаю сообщение об ошибке:
Unexpected HTTP call GET
Я знаю, что я делаю что-то не так, но может ли кто-нибудь сказать мне, как я могу правильно проверить этот класс на Android?