स्प्रिंगरनर बनाम स्प्रिंगबुटेस्ट


11

इकाई परीक्षण में, के बीच मतभेद रहे हैं @Runwith(SpringRunner.class)और @SpringBootTest?

क्या आप मुझे हर एक के उपयोग के मामले समझा सकते हैं?


1
क्या आपने विभिन्न दस्तावेजों में से कोई पढ़ा है? क्या अभी भी स्पष्ट नहीं है?
jonrsharpe

स्पष्ट अंतर स्प्रिंग टेस्ट बनाम स्प्रिंग बूट टेस्ट है, लेकिन यह बहुत व्यापक प्रश्न है
user7294900

मुझे समझ में आएगा कि मुझे स्प्रिंगरनर के अलावा @SpringBootTest का उपयोग कब करना चाहिए।
जौरी

जवाबों:


10

@RunWith (SpringRunner.class): आप यह व्याख्या की जरूरत है सिर्फ सक्षम करने के लिए वसंत बूट की तरह की सुविधा है @Autowire, @MockBeanआदि .. JUnit परीक्षण के दौरान

स्प्रिंग बूट परीक्षण सुविधाओं और JUnit के बीच एक पुल प्रदान करने के लिए उपयोग किया जाता है। जब भी हम अपने JUnit परीक्षणों में किसी भी स्प्रिंग बूट परीक्षण सुविधाओं का उपयोग कर रहे हैं, तो इस एनोटेशन की आवश्यकता होगी।

@SpringBootTest: इस एनोटेशन का उपयोग एंड-टू-एंड इंटीग्रेशन टेस्टिंग के लिए पूर्ण एप्लिकेशन संदर्भ को लोड करने के लिए किया जाता है

जब हम पूरे कंटेनर को बूटस्ट्रैप करना चाहते हैं तो @SpringBootTest एनोटेशन का उपयोग किया जा सकता है। एनोटेशन ApplicationContext बनाकर काम करता है जो हमारे परीक्षणों में उपयोग किया जाएगा।

यहाँ दोनों परिदृश्य Baeldung पर स्पष्ट उदाहरण के साथ लेख है


1

से spring.io :

@RunWith(SpringRunner.class)स्प्रिंग के परीक्षण समर्थन का उपयोग करके चलाने के लिए ज्यूनिट को बताता है। SpringRunnerके लिए नया नाम है SpringJUnit4ClassRunner, यह आंख पर थोड़ा आसान है।

@SpringBootTestकह रही है "स्प्रिंग बूट के समर्थन के साथ बूटस्ट्रैप" (उदाहरण के लिए लोड करें application.propertiesऔर मुझे सभी स्प्रिंग बूट अच्छाई दें)

इसलिए यदि आपको अपने एकीकरण परीक्षण के लिए स्प्रिंग बूट लोड की आवश्यकता नहीं है, तो आपको आवश्यकता नहीं है @SpringBootTest


0

@RunWith टेस्ट रनर्स का उपयोग करने के लिए JUnit 4 से एक पुराना एनोटेशन है। यदि आप JUnit 5 (बृहस्पति) का उपयोग कर रहे हैं, तो आपको JUnit एक्सटेंशन का उपयोग करने के लिए @ExtendWith का उपयोग करना चाहिए

Https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-testing देखें

"यदि आप JUnit 4 का उपयोग कर रहे हैं, तो अपने टेस्ट में @RunWith (स्प्रिंगरनर.क्लास) भी जोड़ना न भूलें, अन्यथा एनोटेशन को नजरअंदाज कर दिया जाएगा। यदि आप JUnit 5 का उपयोग कर रहे हैं, तो समकक्ष @ExtendWith को जोड़ने की कोई आवश्यकता नहीं है। SpringExtension.class) @SpringBootTest के रूप में और अन्य @ ... टेस्ट एनोटेशन इसके साथ पहले से ही एनोटेट हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.