मेरे पास एक ऐसा फ़ंक्शन है जिसे मैं जांचना चाहता हूं जो ठीक है। कॉलबैक में चलता है। मैं Robolectrics का उपयोग करके इसका परीक्षण करने की कोशिश कर रहा हूं लेकिन कॉलबैक कभी निष्पादित नहीं होता है। मुझे लगता है कि ऐसा इसलिए है क्योंकि परीक्षण ठीक होने के बिना अनुरोध के बाद चलता है ठीक है। अब तक मैंने कोशिश की है:Robolectric के साथ okHttp अनुरोधों का परीक्षण - कॉलबैक
ShadowLooper.pauseMainLooper();
Robolectric.flushBackgroundScheduler();
ShadowLooper.unPauseMainLooper();
लेकिन यह काम नहीं किया। कोई सुझाव?
संपादित करें:
यहाँ मेरी कोड का एक उदाहरण है:
ApiClient.sendSomeDataToServer(data, callback);
कहाँ ApiClient एक सहायक okHttp ग्राहक युक्त वर्ग है।
public static void sendSomeDataToServer(MyObject data, Callback callback){
final Request request = new Request.Builder()
.url(API_SOME_URL)
.post(RequestBody.create(JSON, myObject.getAsJson().toString()))
.build();
sHttpClient.newCall(request).enqueue(callback);
}
कहाँ sHttpClient एक initialised OkHttpClient है: sendSomeDataToServer API कॉल कुछ इस तरह लग रहा है।
मैं अपने परीक्षण कोड के अंदर Thread.sleep(5000)
को मजबूर कर और कस्टम कॉलबैक प्रदान करके ऊपर के निष्पादन का परीक्षण कर सकता हूं। जिस कोड को मैं परीक्षण करने का प्रयास कर रहा हूं वह कॉलबैक के अंदर है। कोई सुझाव है कि मैं इसका परीक्षण कैसे कर सकता हूं? मैं वास्तव में परीक्षण ढांचे को फिट करने के लिए मुख्य कोड को बदलना नहीं चाहता हूं - दूसरा रास्ता होना चाहिए।
क्या आप किसी भी निर्भरता इंजेक्शन का उपयोग करते हैं? –