"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > जूनिट परीक्षण में @spy एनोटेशन का उपयोग

जूनिट परीक्षण में @spy एनोटेशन का उपयोग

2024-08-14 को प्रकाशित
ब्राउज़ करें:162

Uses of @spy annotation in junit testing

JUnit में @Spy एनोटेशन, विशेष रूप से जब मॉकिटो के साथ उपयोग किया जाता है, तो किसी वास्तविक वस्तु पर जासूस बनाने के लिए लागू किया जाता है। एक जासूस एक आंशिक नकली है, जिसका अर्थ है कि आप अन्य तरीकों के वास्तविक व्यवहार को बनाए रखते हुए वस्तु के कुछ तरीकों का नकली बना सकते हैं।

यहां @Spy एनोटेशन के कुछ सामान्य उपयोग दिए गए हैं:

  1. आंशिक उपहास:

    • यदि आपके पास कोई ऐसी वस्तु है जहां अधिकांश विधियों को अपने वास्तविक व्यवहार को बनाए रखने की आवश्यकता है लेकिन एक या दो विधियों का उपहास करने की आवश्यकता है, तो आप एक जासूस का उपयोग कर सकते हैं।
    • उदाहरण:
     @Spy
     private List spyList = new ArrayList();
    
     @Test
     public void testSpy() {
         spyList.add("Mockito");
         Mockito.verify(spyList).add("Mockito");
         assertEquals(1, spyList.size());
    
         Mockito.doReturn(100).when(spyList).size();
         assertEquals(100, spyList.size());
     }
    
  2. ओवरराइडिंग रियल मेथड बिहेवियर:

    • आप बाकी विधियों को बरकरार रखते हुए किसी वास्तविक वस्तु के विशिष्ट विधि व्यवहार को ओवरराइड करने के लिए एक जासूस का उपयोग कर सकते हैं।
    • उदाहरण:
     @Spy
     private MyClass myClass = new MyClass();
    
     @Test
     public void testSpyWithMethodOverride() {
         Mockito.doReturn("Mocked Value").when(myClass).someMethod();
         assertEquals("Mocked Value", myClass.someMethod());
     }
    
  3. विधि कॉल का सत्यापन:

    • आप सत्यापित कर सकते हैं कि क्या जासूस पर कुछ निश्चित तरीकों का इस्तेमाल किया गया था, जो इंटरैक्शन का परीक्षण करते समय सहायक होता है।
    • उदाहरण:
     @Spy
     private MyClass myClass = new MyClass();
    
     @Test
     public void testMethodCallVerification() {
         myClass.someMethod();
         Mockito.verify(myClass).someMethod();
     }
    
  4. @InjectMocks के साथ संयोजन:

    • @Spy का उपयोग @InjectMocks के साथ मिलकर परीक्षण की जा रही वस्तु में जासूसी की गई वस्तुओं को इंजेक्ट करने के लिए किया जा सकता है, जिससे परीक्षण किए गए वर्ग के भीतर आंशिक मॉकिंग की अनुमति मिलती है।
    • उदाहरण:
     @Spy
     private MyDependency dependency;
    
     @InjectMocks
     private MyService service;
    
     @Test
     public void testService() {
         Mockito.doReturn("Mocked Result").when(dependency).doSomething();
         assertEquals("Mocked Result", service.performAction());
     }
    
  5. विरासत कोड का परीक्षण:

    • लीगेसी कोड से निपटते समय जिसे आप आसानी से रिफैक्टर नहीं कर सकते हैं, एक जासूस का उपयोग करने से आप मूल कोड को बदले बिना विशिष्ट तरीकों को अलग कर सकते हैं और उनका नकल कर सकते हैं।

संक्षेप में, @Spy एनोटेशन तब उपयोगी होता है जब आपको ऑब्जेक्ट के बाकी व्यवहार को अपरिवर्तित रखते हुए किसी वास्तविक ऑब्जेक्ट के विशिष्ट व्यवहार को नियंत्रित या सत्यापित करने की आवश्यकता होती है।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/shivam_tyagi/uses-of-spy-annotation-in-junit-testing-23n6?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3