我有一个 Android 应用程序,其中应用程序的主要部分是 APIcalls.java 类,我在其中发出 http 请求以从服务器获取数据并在应用程序中显示数据。
我想为这个 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 中正确测试这个类?