2013-04-05 29 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

相關問題