यूनिट-परीक्षण की कड़ाई से बोलते हुए, आप केवल उन इकाइयों का परीक्षण कर सकते हैं जिनके पास निर्धारक व्यवहार है।
बाहरी वेब सर्वर से कनेक्ट होने वाला एक परीक्षण एकीकरण परीक्षण है।
समाधान HTTPURLConnection का नकल करना है - यानी, अपने यूनिट परीक्षणों में एक वर्ग बनाएं जो HTTPURLConnection क्लास से प्राप्त होता है और जो हार्डकोडेड या पैरामीटरज़ेबल मान देता है। संपादित करें: ध्यान दें कि बिना किसी मॉकिंग फ्रेमवर्क के इसे मूनली किया जा सकता है।
वेब सर्वर से पूछताछ करने वाली कक्षा HTTPURL कनेक्शन को कम नहीं करेगी, लेकिन इसे पैरामीटर के माध्यम से प्राप्त करेगी। यूनिट परीक्षणों में, आप HTTPURLConnectionMock बनाते हैं, और उस क्लास को पास करते हैं जो वेब सर्वर से पूछताछ करता है जो इसका उपयोग करेगा क्योंकि यह वास्तविक HTTPURL कनेक्शन का उपयोग कर रहा है। उत्पादन कोड में, आप एक वास्तविक HTTPURL कनेक्शन बनाते हैं और इसे कक्षा में पास करते हैं।
आप अपने HTTPURLConnectionMock को IOException फेंकने में सक्षम कर सकते हैं, परीक्षण त्रुटि शर्तों पर। बस यह बताने के लिए एक तरीका है कि परिणाम न लौटाए लेकिन अगले अनुरोध पर अपवाद।
+1: नकली वस्तुएं इंटरफेस के बारे में सभी संदेह को हटा देती हैं। –
मैंने वेब सेवा का मज़ाक उड़ाने के बारे में भी सोचा नहीं था। यह जाने के मार्ग की तरह लगता है। – kevindaub