2013-04-05 33 views
6

Trong một dự án Android, tôi thử chạy các thử nghiệm junit đơn giản. Chúng luôn thất bại với:java.lang.RuntimeException: Stub! chạy dự án Junit trong Android

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) 

Đây là dòng không thành công, bất kỳ bắt đầu lớp học mới nào cũng sẽ thực hiện điều đó.

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

Trong một số bài viết tôi thấy rằng cần phải bao gồm bình junit trước Android SDK. Tôi đã làm điều đó trong IntelliJ, nhưng tôi đã không giúp đỡ. Tôi đang sử dụng junit 4.9Android SDK 4.2.2

Trả lời

0

Tôi nghĩ rằng robolectric có thể hữu ích cho bạn.

Chạy thử nghiệm trên trình mô phỏng hoặc thiết bị Android chậm! Việc xây dựng, triển khai và khởi chạy ứng dụng thường mất một phút hoặc lâu hơn. Đó không phải là cách để thực hiện TDD. Phải có cách tốt hơn.

Bạn sẽ không thể chạy thử nghiệm Android trực tiếp từ bên trong IDE của mình? Có lẽ bạn đã thử, và bị cản trở bởi sự sợ hãi 'java.lang.RuntimeException: Stub!'?

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

+0

Có nhờ tôi đã có một cái nhìn vào nó. Có vẻ tốt đẹp. Nhưng trong trường hợp này cần thử nghiệm junit đơn giản, không cần khởi động toàn bộ nội dung trên Android. – Torsten

+0

Có lẽ bạn có thể chạy thử nghiệm như một dự án Java bình thường và sử dụng các phụ thuộc Apache HttpComponents (http://hc.apache.org/) cho lớp DefaultHttpClient? –

Các vấn đề liên quan