फ्लिप पक्ष पर: यदि कनेक्शन कॉन्फ़िगर करने योग्य है, तो कनेक्शन स्ट्रिंग टाइमआउट को 1 सेकंड तक कम करें - जिससे यह आसान हो जाएगा। डेटा के oodles के साथ तालिका भरें और लूप के चारों ओर एक लेन-देन के साथ उस तालिका के अपडेट वाले लूप में 3 अन्य प्रक्रियाओं को स्पिन करें। ऐप द्वारा कॉल की गई वास्तविक प्रक्रिया (वेटफ़ोर को इंजेक्ट करते हुए) को न बदलें। यह एक एकीकरण परीक्षण को अमान्य करता है।
लेकिन वास्तव में, यह पक्ष इकाई परीक्षण और निर्भरता इंजेक्शन में एक केस स्टडी है। कुछ चीजें केवल एकीकरण परीक्षण के लिए कठिन हैं। इकाई परीक्षण + निर्भरता इंजेक्शन ।
- रियल: कोड जो क्रेप्स -> डेटाबेस टाइमआउट (पुन: पेश करने के लिए कठिन)।
- रिफैक्टर: कोड जो क्रेप्स -> रिपोजिटरी (केवल डेटा एक्सेस करता है) -> डेटाबेस
- यूनिट टेस्ट: कोड जो कि क्रेप्स> मॉक रिपॉजिटरी को फेंकने के लिए -> नल
- अब आपके पास कोड के लिए एक असफल परीक्षण है जो क्रेप्स करता है और इसे ठीक कर सकता है।
यह "निर्भरता" इंजेक्शन है। देवता डेटाबेस पर निर्भरता को इंजेक्ट कर सकता है, कुछ निर्भर करता है जो एक निर्भरता के व्यवहार का अनुकरण करता है। सभी डेटाबेस परीक्षणों के लिए अच्छा है। वैसे भी, जगह में यूनिट टेस्ट के साथ, आप जानते हैं कि फिक्स को किस तरह का होना चाहिए, लेकिन आपको अभी भी एक एकीकरण परीक्षण की आवश्यकता है। इस मामले में, यह प्रतिगमन पर बेहतर ध्यान केंद्रित कर सकता है - जिसका अर्थ है कि इसका परीक्षण करना कुछ और नहीं तोड़ता है और यह सुविधा अभी भी काम करती है।
आपने अपना पैच पहले ही बना लिया है, इसलिए मुझे लगता है कि मेरा उत्तर बहुत देर से आया है।