अपवाद उत्पन्न करना और लगातार कॉल
समृद्ध परीक्षण परिदृश्यों के लिए मॉक को अपवाद उत्पन्न करने और लगातार आह्वानों में अलग-अलग मान लौटाने हेतु स्टब कीजिए।
अपवाद उत्पन्न करना और लगातार कॉल, CoddyKit पर परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
साधारण रिटर्न से आगे
रिटर्न मान निर्धारित करना सामान्य सफल स्थिति को कवर करता है, लेकिन वास्तविक कोड को त्रुटियों और बदलती स्थिति को भी संभालना चाहिए। Mockito आपको अपवाद उत्पन्न करने और प्रत्येक कॉल पर अलग-अलग उत्तर देने के लिए मॉक का व्यवहार निर्धारित करने देता है।
thenThrow की मूल बातें
किसी निर्धारित व्यवहार वाली विधि से अपवाद उठवाने के लिए thenThrow का उपयोग करें, ताकि आप अपनी त्रुटि-प्रबंधन प्रक्रिया का परीक्षण कर सकें।
when(repo.findById(99L))
.thenThrow(new NotFoundException());विफलता वाले मार्ग का परीक्षण
यह जाँचने के लिए कि आपका कोड सही प्रतिक्रिया देता है, अपवाद उत्पन्न करने वाले व्यवहार को assertThrows के साथ मिलाएँ।
@Test
void propagatesError() {
when(repo.findById(99L)).thenThrow(new NotFoundException());
assertThrows(NotFoundException.class,
() -> service.load(99L));
}void विधियों से अपवाद उत्पन्न करना
void विधियों के लिए आप सीधे when(...) का उपयोग नहीं कर सकते। इसके बजाय doThrow(...).when(mock).method() का उपयोग करें।
doThrow(new IllegalStateException())
.when(logger).flush();लगातार लौटाए जाने वाले मान
लगातार होने वाली कॉल पर अलग-अलग मान लौटाने के लिए thenReturn में कई आर्ग्युमेंट दें। सभी मान समाप्त हो जाने के बाद अंतिम मान दोहराया जाता है।
when(counter.next())
.thenReturn(1, 2, 3);मॉक कॉल की श्रृंखला बनाना
आप कॉल की श्रृंखला भी बना सकते हैं। प्रत्येक कॉल क्रम में होने वाले अगले आह्वान का वर्णन करती है।
when(counter.next())
.thenReturn(1)
.thenReturn(2)
.thenThrow(new IllegalStateException());रिटर्न और अपवादों को मिलाना
एक सामान्य तरीका है: कुछ बार सफल होना और फिर विफल होना। इससे बार-बार प्रयास करने वाले नेटवर्क क्लाइंट जैसे अस्थिर संसाधनों का मॉडल बनाया जाता है।
when(client.fetch())
.thenReturn("ok")
.thenThrow(new IOException("down"));जाँच किए जाने वाले अपवादों की सीमा
मॉक केवल वही जाँचा जाने वाला अपवाद उत्पन्न कर सकता है जिसे निर्धारित व्यवहार वाली विधि घोषित करती है। घोषित न किए गए जाँचे जाने वाले अपवाद को उत्पन्न करने पर Mockito रनटाइम त्रुटि देता है।
लगातार मानों के लिए doReturn
do* परिवार भी श्रृंखला बनाने का समर्थन करता है और जासूसों या void विधियों का व्यवहार निर्धारित करते समय आवश्यक होता है।
doReturn("a")
.doReturn("b")
.when(provider).value();यह क्यों महत्वपूर्ण है
अपवाद और लगातार व्यवहार-निर्धारण से आप जटिल नकली ऑब्जेक्ट बनाए बिना पुनःप्रयास तर्क, वैकल्पिक मार्ग और स्थिति-आधारित क्रमों को चला सकते हैं।
सबको एक साथ जोड़ना
अब आप लचीले कोड की पुष्टि करने के लिए मॉक को सफलता और विफलता के पूरे क्रम से चला सकते हैं।
when(api.call())
.thenReturn("first")
.thenThrow(new TimeoutException());त्वरित जाँच
किसी निर्धारित व्यवहार वाली विधि को पहली कॉल पर 1 और दूसरी कॉल पर 2 लौटाने के लिए आप क्या करेंगे?
पुनरावलोकन
आपने उन्नत व्यवहार-निर्धारण सीखा:
thenThrow/doThrowत्रुटियों का अनुकरण करते हैं- कई
thenReturnआर्ग्युमेंट या श्रृंखलाएँ लगातार मान देती हैं - मॉक केवल घोषित जाँचे जाने वाले अपवाद उत्पन्न कर सकते हैं
- void विधियों और जासूसों के लिए
do*का उपयोग करें
एआई शिक्षक के साथ परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 48
अक्सर पूछे जाने वाले प्रश्न
क्या “अपवाद उत्पन्न करना और लगातार कॉल” पाठ निःशुल्क है?
हाँ — परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “अपवाद उत्पन्न करना और लगातार कॉल” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“अपवाद उत्पन्न करना और लगातार कॉल” में मैं क्या सीखूँगा?
समृद्ध परीक्षण परिदृश्यों के लिए मॉक को अपवाद उत्पन्न करने और लगातार आह्वानों में अलग-अलग मान लौटाने हेतु स्टब कीजिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“अपवाद उत्पन्न करना और लगातार कॉल” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- वापसी मानों के लिए स्टब बनाना
- Mockito तर्क मिलानकर्ता
- वास्तविक ऑब्जेक्ट पर जासूसी
- अपवाद उत्पन्न करना और लगातार कॉल