2013-04-05 28 views
6

在一个android项目中,我尝试运行简单的junit测试。他们总是失败:java.lang.RuntimeException:存根!在Android项目中运行Junit

java.lang.RuntimeException: Stub! 
at org.apache.http.impl.client.AbstractHttpClient.<init>(AbstractHttpClient.java:5) 
at org.apache.http.impl.client.DefaultHttpClient.<init>(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(); 
     ... 
} 

在一些帖子中,我发现,junit罐子应该Android SDK之前被包括在内。我在IntelliJ中这样做了,但我没有帮助。我正在使用junit 4.9Android SDK 4.2.2

回答

0

我认为robolectric可以对您有用。

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

难道你的IDE直接从 内运行你的Android测试不是很好吗?也许你已经试过了,被可怕的 'java.lang.RuntimeException:Stub!'阻止了?

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

+0

是由于我已经有一个看看吧。看起来不错。但在这种情况下,需要简单的junit测试,而无需启动整个android的东西。 – Torsten 2013-04-05 08:12:13

+0

也许你可以像普通的Java项目一样运行测试,并使用DefaultHttpClient类的Apache HttpComponents(http://hc.apache.org/)依赖项? – 2013-04-05 08:27:47

相关问题