java.lang.RuntimeException:Stub! 在Android项目中运行Junit

在一个Android项目中,我尝试运行简单的junit测试。 他们总是失败:

java.lang.RuntimeException: Stub! at org.apache.http.impl.client.AbstractHttpClient.(AbstractHttpClient.java:5) at org.apache.http.impl.client.DefaultHttpClient.(DefaultHttpClient.java:7) at com.my.android.JsonParser.getJSONFromUrl(JsonParser.java:27) at com.my.android.test.JsonParser_Test.getJson(JsonParser_Test.java:19) 

这是它失败的线,任何新的类启动都会这样做。

  public JSONObject getJSONFromUrl(String url) { DefaultHttpClient httpClient = new DefaultHttpClient(); ... } 

在几篇文章中,我发现应该在Android SDK之前包含junit jar。 我在IntelliJ做到了,但我没有帮助。 我使用的是junit 4.9Android SDK 4.2.2

我认为robolectric对你有用。

在Android模拟器或设备上运行测试很慢! 构建,部署和启动应用程序通常需要一分钟或更长时间。 这是无法做TDD的。 一定会有更好的办法。

直接从IDE内部运行Android测试不是很好吗? 也许你已经尝试过,并被可怕的’java.lang.RuntimeException:Stub!’所挫败?

http://pivotal.github.com/robolectric/