के साथ काम करने के लिए रोबोलेक्ट्रिक प्राप्त करना मैं वॉली को रोबोलेक्ट्रिक के साथ काम करने की कोशिश कर रहा हूं। मैं देख सकता हूं कि मेरा HTTP अनुरोध बुलाया जा रहा है, और parseNetworkResponse को बुलाया जा रहा है (मैं JsonRequest का कस्टम सबक्लास भेज रहा हूं), लेकिन मेरे श्रोता को कॉल नहीं किया जा रहा है। कोई सलाह? यहाँ एक कोड नमूना है:वॉली
@Test
public void testTypeAheadClient() throws Exception {
Robolectric.getFakeHttpLayer().interceptHttpRequests(false);
//mRemoteRequestQueue and mCustomRequest are set up previously
mRemoteRequestQueue.add(mCustomRequest);
}
private static class CustomRequest extends JsonRequest<MyObject> {
public CustomRequest(String url,
Response.Listener<MyObject> listener,
Response.ErrorListener errorListener) {
super(Request.Method.GET, url, null, listener, errorListener);
}
@Override
protected Response<MyObject> parseNetworkResponse(NetworkResponse response) {
System.out.println("in parseNetworkResponse");
try {
MyObject myObject = new MyObject(new JSONArray(new String(response.data, "UTF-8")));
return Response.success(myObject, HttpHeaderParser.parseCacheHeaders(response));
} catch (Exception e) {
e.printStackTrace();
return Response.error(new ParseError(e));
}
}
}
जैसा कि आप कॉलबैक का उपयोग कर रहे हैं, मुझे लगता है कि यह एक async लाइब्रेरी है। Android Async Http lib के साथ Robolectric का उपयोग करने के लिए आपको अपना खुद का थ्रेड पूल सेट करने की आवश्यकता है। शायद इस मामले में एक ही समाधान अपनाया जा सकता है। https://groups.google.com/forum/#!msg/robolectric/Z3Yg04gL4hg/iwYlnvHAkO4J – Axxiss
यदि आपको यह काम करने के लिए मिला तो क्या आप अपना पूरा टेस्ट कोड पोस्ट कर सकते हैं? –