JUnit @Parameters का उपयोग करके उदाहरण के साथ पैरामीटरीकृत परीक्षण
जूनिट में पैरामीटराइज्ड टेस्ट क्या है?
पैरामीटराइज़्ड टेस्ट में अलग-अलग वैल्यू का इस्तेमाल करके एक ही टेस्ट को बार-बार निष्पादित किया जाता है। यह डेवलपर को एक ही टेस्ट को निष्पादित करने में समय बचाने में मदद करता है जो केवल उनके इनपुट और अपेक्षित परिणामों में भिन्न होता है।
पैरामीटराइज्ड परीक्षण का उपयोग करके, कोई परीक्षण विधि स्थापित की जा सकती है जो किसी डेटा स्रोत से डेटा पुनर्प्राप्त करती है।
विभिन्न संख्याओं का योग करने के लिए एक सरल परीक्षण पर विचार करें। कोड कुछ इस तरह दिख सकता है –
उपरोक्त दृष्टिकोण से बहुत अधिक अतिरेक उत्पन्न होता है।
हमें एक सरल दृष्टिकोण की आवश्यकता है और। पैरामीटराइज्ड परीक्षण का उपयोग करके आप बस 10 डेटा इनपुट करने के लिए एक विधि जोड़ सकते हैं और आपका परीक्षण स्वचालित रूप से 10 बार चलेगा।
पैरामीटराइज़्ड बनाने के चरण JUnit परीक्षण
निम्न कोड पैरामीटराइज़्ड परीक्षण का एक उदाहरण दिखाता है। यह Arithmetic क्लास की sum() विधि का परीक्षण करता है:
चरण 1) एक क्लास बनाएँ। इस उदाहरण में, हम sum (int,int) विधि का उपयोग करके दो संख्याएँ इनपुट करने जा रहे हैं जो दी गई संख्याओं का योग लौटाएगी
चरण 2) एक पैरामीटराइज़्ड परीक्षण क्लास बनाएँ
कोड स्पष्टीकरण
- कोड लाइन 11: @runWith(Parameterized.class) का उपयोग करके अपने परीक्षण वर्ग को एनोटेट करें।
- कोड लाइन 13: 'firstNumber' चर को निजी तथा प्रकार को int घोषित करना।
- कोड लाइन 14: चर 'secondNumber' को निजी तथा प्रकार को int घोषित करना।
- कोड लाइन 15: 'expectedResult' चर को निजी तथा प्रकार को int घोषित करना।
- कोड लाइन 16: चर 'airthematic' को निजी तथा प्रकार को Airthematic घोषित करना।
@साथ चलाएं(क्लास_नाम.क्लास): @साथ चलाएं एनोटेशन का उपयोग इसके रनर क्लास नाम को निर्दिष्ट करने के लिए किया जाता है। यदि हम पैरामीटर के रूप में कोई प्रकार निर्दिष्ट नहीं करते हैं, तो रनटाइम चुनेगा ब्लॉकजूनिट4क्लासरनर डिफ़ॉल्ट रूप से
यह क्लास नए टेस्ट इंस्टेंस के साथ टेस्ट चलाने के लिए जिम्मेदार है। यह इनवोक करने के लिए जिम्मेदार है JUnit जीवनचक्र विधियाँ जैसे सेटअप (संसाधन संबद्ध करें) और टियरडाउन (संसाधन रिलीज़ करें)।
पैरामीटराइज़ करने के लिए आपको @RunWith का उपयोग करके एनोटेट करना होगा और परीक्षण के लिए आवश्यक .class पास करना होगा
चरण 3) एक कन्स्ट्रक्टर बनाएं जो टेस्ट डेटा को स्टोर करता है। यह 3 वैरिएबल स्टोर करता है
चरण 4) एक स्थैतिक विधि बनाएं जो परीक्षण डेटा उत्पन्न करे और लौटाए।
कोड लाइन 32,33: दो-आयामी सरणी बनाना (जोड़ के लिए इनपुट पैरामीटर प्रदान करना)। asList विधि का उपयोग करके हम डेटा को सूची प्रकार में परिवर्तित करते हैं। चूँकि, विधि इनपुट का रिटर्न प्रकार संग्रह है।
कोड लाइन 30: का प्रयोग @पैरामीटर हमारे परीक्षण को चलाने के लिए इनपुट डेटा का एक सेट बनाने के लिए एनोटेशन।
@Parameters एनोटेशन द्वारा पहचानी गई स्थैतिक विधि एक संग्रह लौटाती है, जहां संग्रह में प्रत्येक प्रविष्टि परीक्षण के एक पुनरावृत्ति के लिए इनपुट डेटा होगी।
तत्व पर विचार करें
1,2,3 {}
यहाँ
प्रथम संख्या =1
दूसरा नंबर=2
अपेक्षित परिणाम=3
यहां प्रत्येक ऐरे तत्व को एक-एक करके कंस्ट्रक्टर में पास किया जाएगा, क्योंकि क्लास को कई बार इंस्टैंशिएट किया जाएगा।
चरण 5) पूरा कोड
कोड स्पष्टीकरण:
- कोड लाइन 25: संसाधनों को सेटअप करने के लिए @Before एनोटेशन का उपयोग करना (यहाँ Airthematic.class)। @Before एनोटेशन का उपयोग यहाँ प्रत्येक परीक्षण मामले से पहले चलाने के लिए किया जाता है। इसमें परीक्षण की पूर्व शर्त शामिल है।
- कोड लाइन 36: अपना परीक्षण बनाने के लिए @Test एनोटेशन का उपयोग करना।
- कोड लाइन 39: यह जाँचने के लिए कि क्या हमारा योग हमारी अपेक्षा के अनुरूप है, एक दावा कथन बनाना।
चरण 6) पैरामीटराइज्ड परीक्षण चलाने के लिए एक टेस्ट रनर क्लास बनाएं:
कोड स्पष्टीकरण:
- कोड लाइन 8: क्लास टेस्ट की मुख्य विधि घोषित करना जो हमारे चलाएगा JUnit परीक्षण.
- कोड लाइन 9: JunitCore.runclasses का उपयोग करके परीक्षण मामलों को निष्पादित करते समय, यह परीक्षण वर्ग का नाम पैरामीटर के रूप में लेगा (हमारे उदाहरण में हम Airthematic.class का उपयोग कर रहे हैं)।
- कोड लाइन 11: फॉर लूप का उपयोग करके परिणाम को संसाधित करना और असफल परिणाम को प्रिंट करना।
- कोड लाइन 13: सफल परिणाम का मुद्रण करना।
आउटपुट:
नीचे दिया गया आउटपुट बिना किसी विफलता के सफल परीक्षण को दर्शाता है:
कंसोल पर परिणाम देखें, जो दो संख्याओं का योग दर्शाता है:-
सारांश
पैरामीटरीकृत परीक्षण डेवलपर को विभिन्न मानों का उपयोग करके एक ही परीक्षण को बार-बार निष्पादित करने में सक्षम बनाता है।
पैरामीटराइजेशन के दौरान उपयोग किए जाने वाले महत्वपूर्ण एनोटेशन
- @साथ चलाएं
- @पैरामीटर