JUnit टेस्ट के मामले @Before @BeforeClass एनोटेशन

विषय - सूची:

Anonim

जावा में JUnit सबसे लोकप्रिय इकाई परीक्षण ढांचा है। यह यूनिट परीक्षण के लिए स्पष्ट रूप से अनुशंसित है। JUnit को वेब एप्लिकेशन के परीक्षण के लिए सर्वर की आवश्यकता नहीं है, जो परीक्षण प्रक्रिया को तेज करता है।

JUnit ढांचा भी परीक्षण मामलों और परीक्षण डेटा की त्वरित और आसान पीढ़ी की अनुमति देता है। Org.Junit पैकेज इस तरह के टेस्ट, जोर, के बाद, पहले, आदि के रूप में कई इंटरफेस और JUnit परीक्षण के लिए कक्षाओं से मिलकर बनता है

टेस्ट फिक्सचर क्या है

इससे पहले कि हम समझें कि एक परीक्षण स्थिरता क्या है, आइए नीचे दिए गए कोड का अध्ययन करें

यह कोड एक साधारण फ़ाइल पर दो परीक्षण मामलों को निष्पादित करने के लिए डिज़ाइन किया गया है।

सार्वजनिक वर्गनिजी फ़ाइल आउटपुट;आउटपुट = नई फ़ाइल (…);output.delete ();सार्वजनिक शून्य testFile1 () {// टेस्ट केस 1 को सत्यापित करने के लिए कोड}output.delete ();आउटपुट = नई फ़ाइल (…);सार्वजनिक शून्य testFile2 () {// टेस्ट केस 2 को सत्यापित करने के लिए कोड}output.delete ();}

कुछ मुद्दे यहाँ

  • कोड पठनीय नहीं है
  • कोड को बनाए रखना आसान नहीं है।
  • जब परीक्षण सूट जटिल होता है तो कोड में तार्किक मुद्दे हो सकते हैं।

JUnit का उपयोग करके समान कोड की तुलना करें

सार्वजनिक वर्ग OutputFileTest{{निजी फ़ाइल आउटपुट;@ पहले सार्वजनिक शून्य बनाएँ{{आउटपुट = नई फ़ाइल (…);}@ सार्वजनिक शून्य हटाएं{{output.delete ();}@ सबसे सार्वजनिक शून्य परीक्षण{{// टेस्ट केस उद्देश्य के लिए कोड}@ टेस्ट सार्वजनिक शून्य टेस्टफिले 2 (){{// टेस्ट केस उद्देश्य के लिए कोड}}

कोड अधिक पठनीय और बनाए रखने योग्य है। उपरोक्त कोड संरचना एक परीक्षण स्थिरता है।

एक परीक्षण स्थिरता एक संदर्भ है जहां एक टेस्ट केस चलता है। आमतौर पर, परीक्षण जुड़नार में शामिल हैं:

  • ऐसी वस्तुएँ या संसाधन जो किसी भी परीक्षण मामले के लिए उपलब्ध हैं।
  • आवश्यक गतिविधियाँ जो इन वस्तुओं / संसाधनों को उपलब्ध कराती हैं।
  • ये गतिविधियाँ हैं
    1. आवंटन ( सेटअप )
    2. डी-आवंटन ( अशांति )।

सेटअप और टियरडाउन

  • आमतौर पर, कुछ दोहराया कार्य हैं जो प्रत्येक परीक्षण मामले से पहले किए जाने चाहिए। उदाहरण: एक डेटाबेस कनेक्शन बनाएँ।
  • इसी तरह, प्रत्येक परीक्षण मामले के अंत में, कुछ दोहराया कार्य हो सकते हैं। उदाहरण: एक बार परीक्षण निष्पादन समाप्त होने पर साफ करना।
  • JUnit एनोटेशन प्रदान करता है जो सेटअप और फाड़ में मदद करता है। यह सुनिश्चित करता है कि संसाधन जारी किए जाते हैं, और परीक्षण प्रणाली अगले परीक्षण मामले के लिए तैयार स्थिति में है।

इन टिप्पणियों की चर्चा नीचे दी गई है-

सेट अप

@Before एनोटेशन का उपयोग प्रत्येक परीक्षण मामले से पहले चलाने के लिए जावा कोड वाली विधि पर किया जाता है। यानी यह प्रत्येक परीक्षण के निष्पादन से पहले चलता है।

टियरडाउन (फैसले की परवाह किए बिना)

@ प्रत्येक परीक्षण मामले के बाद चलाने के लिए जावा कोड युक्त विधि पर एनोटेशन का उपयोग किया जाता है। ये विधियाँ तब भी चलेंगी जब कोई अपवाद परीक्षण के मामले में या दावे की विफलता के मामले में फेंक दिया गया हो।

ध्यान दें:

  • इसे ऊपर सूचीबद्ध किसी भी एनोटेशन की अनुमति है।
  • @Before के साथ एनोटेट किए गए सभी तरीके प्रत्येक परीक्षण मामले से पहले चलेंगे, लेकिन वे किसी भी क्रम में चल सकते हैं।
  • आप एक सुपर क्लास से @Before और @AA मेथड्स इनहेरिट कर सकते हैं, एक्जिक्यूशन इस प्रकार है: यह JUnit में एक मानक निष्पादन प्रक्रिया है।
  1. सुपरक्लास में @Before तरीकों को निष्पादित करें
  2. इस वर्ग में @Before विधियों का निष्पादन करें
  3. इस वर्ग में एक @ विधि का निष्पादन करें
  4. इस वर्ग में @After विधियों का निष्पादन करें
  5. सुपरक्लास में @After के तरीकों को निष्पादित करें

उदाहरण: टेस्ट फिक्सेटर के रूप में फाइल के साथ एक क्लास बनाना

सार्वजनिक वर्ग OutputFileTest{{निजी फ़ाइल आउटपुट;@ पहले सार्वजनिक शून्य बनाएँ{{आउटपुट = नई फ़ाइल (…);}@ सार्वजनिक शून्य हटाएं{{output.delete ();}@ सबसे सार्वजनिक शून्य परीक्षण{{// टेस्ट केस उद्देश्य के लिए कोड}@ टेस्ट सार्वजनिक शून्य टेस्टफिले 2 (){{// टेस्ट केस उद्देश्य के लिए कोड}}

उपरोक्त उदाहरण में निष्पादन की श्रृंखला निम्नानुसार होगी-

  1. createOutputFile ()
  2. testFile1 ()
  3. हटाएँ
  4. createOutputFile ()
  5. testFile2 ()
  6. हटाएँ

अनुमान: testFile1 () testFile2 () से पहले चलता है - जिसकी गारंटी नहीं है।

एक बार-केवल सेटअप

  • किसी भी परीक्षा को अंजाम देने से पहले, और किसी भी @ विधि विधि (ओं) को करने से पहले पूरे परीक्षण वर्ग के लिए केवल एक बार एक विधि चलाना संभव है ।
  • सर्वर शुरू करने, संचार खोलने आदि के लिए "केवल एक बार सेटअप" उपयोगी है, यह प्रत्येक परीक्षण के लिए संसाधनों को बंद करने और फिर से खोलने के लिए समय लेने वाला है।
  • यह @BeforeClass एनोटेशन का उपयोग करके किया जा सकता है
@BeforeClass सार्वजनिक स्थैतिक शून्य Method_Name () {// क्लास सेटअप कोड यहाँ}

एक बार-ही आंसू बहाओ

  • केवल एक बार सेटअप के समान, एक बार-केवल सफाई विधि भी उपलब्ध है। यह सभी परीक्षण मामलों के तरीकों के बाद चलता है और @After एनोटेशन निष्पादित किए गए हैं।
  • यह सर्वरों को बंद करने, संचार लिंक बंद करने आदि के लिए उपयोगी है।
  • यह @AfterClass एनोटेशन का उपयोग करके किया जा सकता है
@ बाद में सार्वजनिक स्थैतिक शून्य Method_Name (){{// क्लास क्लीनअप कोड यहाँ}

JUnit टेस्ट सूट

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

जूनिट टेस्ट रनर

JUnit आपके परीक्षण मामलों के निष्पादन के लिए एक उपकरण प्रदान करता है।

  • JUnitCore क्लास का उपयोग इन परीक्षणों को निष्पादित करने के लिए किया जाता है।
  • Org.junit.runner.JUnitCore द्वारा प्रदान की गई runClasses नामक एक विधि का उपयोग एक या कई परीक्षण कक्षाओं को चलाने के लिए किया जाता है।
  • इस पद्धति का रिटर्न प्रकार परिणाम ऑब्जेक्ट ( org.junit.runner.Result ) है, जिसका उपयोग परीक्षणों के बारे में जानकारी तक पहुंचने के लिए किया जाता है। अधिक स्पष्टता के लिए निम्नलिखित कोड उदाहरण देखें।
पब्लिक क्लास टेस्ट {सार्वजनिक स्थैतिक शून्य main (String [] args) {परिणाम परिणाम = JUnitCore.runClasses (CreateAndSetName.class);के लिए (विफलता विफलता: result.getFailures ()) {System.out.println (विफलता.toString ());}System.out.println (result.wasSuccessful ());}}

उपरोक्त कोड "परिणाम" में विफलताओं को प्राप्त करने के लिए कार्रवाई की जाती है और परीक्षण मामलों के सफल परिणाम जो हम निष्पादित कर रहे हैं।

पहला जेयूनिट प्रोग्राम

एसडीएलसी, जावा प्रोग्रामिंग, और सॉफ्टवेयर परीक्षण प्रक्रिया की मूल जानकारी का निष्पक्ष ज्ञान JUnit कार्यक्रम को समझने में मदद करता है।

आइए एक लाइव उदाहरण का उपयोग करके यूनिट परीक्षण को समझते हैं। हमें नीचे दिए गए तरीके से @ टेस्ट के साथ एनोटेट के साथ एक टेस्ट क्लास बनाने की आवश्यकता है :

MyFirstClassTest.java

पैकेजआयात स्थिर org.JUnit.Assert। *;आयात org.JUnit.Test;सार्वजनिक वर्ग MyFirstClassTest {@परीक्षासार्वजनिक शून्य myFirstMethod () {स्ट्रिंग स्ट्र = "जुनाइट ठीक काम कर रहा है";जोर ("JUnit ठीक काम कर रहा है", str);}}

TestRunner.java

हमारे परीक्षण विधि (ऊपर) को निष्पादित करने के लिए, हमें एक परीक्षण धावक बनाने की आवश्यकता है। टेस्ट रनर में हमें JUnitCore के रनक्लास () विधि में एक पैरामीटर के रूप में टेस्ट क्लास को जोड़ना होगा। यह परीक्षा परिणाम लौटाएगा, इस आधार पर कि परीक्षा उत्तीर्ण है या असफल।

इस पर अधिक जानकारी के लिए नीचे दिया गया कोड देखें:

पैकेजआयात org.JUnit.runner.JUnitCore;आयात org.JUnit.runner.Result;आयात org.JUnit.runner.notification.Failure;पब्लिक क्लास टेस्टरनर {सार्वजनिक स्थैतिक शून्य main (String [] args) {परिणाम परिणाम = JUnitCore.runClasses (MyFirstClassTest.class);के लिए (विफलता विफलता: result.getFailures ()) {System.out.println (विफलता.toString ());}System.out.println ("परिणाम ==" + result.wasSuccessful ());}}

उत्पादन

एक बार TestRunner.java हमारे परीक्षण के तरीकों को निष्पादित करता है जो हमें असफल या पारित होने के रूप में आउटपुट मिलता है। कृपया उत्पादन विवरण नीचे पाएं:

  1. इस उदाहरण में, MyFirstClassTest.java को निष्पादित करने के बाद , परीक्षण पारित किया जाता है और परिणाम हरे रंग में होता है।
  2. यदि यह विफल हो जाता तो इसे परिणाम दिखाना चाहिए क्योंकि रेड और विफलता विफलता ट्रेस में देखी जा सकती है। नीचे देखें गुनीत गुई:

सारांश :

  • JUnit एक ढांचा है जो एक विधि की पहचान करने के लिए कई एनोटेशन का समर्थन करता है जिसमें एक परीक्षण होता है।
  • JUnit @Test नामक एक एनोटेशन प्रदान करता है , जो JUnit को बताता है कि सार्वजनिक शून्य विधि जिसमें इसका उपयोग किया जाता है, परीक्षण केस के रूप में चल सकती है।
  • एक परीक्षण स्थिरता एक संदर्भ है जहां एक परीक्षण मामला चलता है
  • एक निर्दिष्ट क्रम में कई परीक्षणों को निष्पादित करने के लिए, यह एक ही स्थान पर सभी परीक्षणों को मिलाकर किया जा सकता है। इस जगह को टेस्ट सूट कहा जाता है।
  • JUnit परीक्षणों के निष्पादन के लिए एक उपकरण प्रदान करता है जहाँ हम टेस्ट रनर के रूप में संदर्भित अपने परीक्षण मामलों को चला सकते हैं।