what is junit test fixture
यह ट्यूटोरियल समझाएगा कि कब, क्यों और कैसे यूनाइट टेस्ट फिक्सचर का उपयोग करना आसान है
हम सीखेंगे -
- हमें टेस्ट फिक्सेचर का उपयोग कब और क्यों करना है?
- JUnit परीक्षण के लिए हमारे कोड में इसका उपयोग करने के लिए दृष्टिकोण क्या है?
- Fix टेस्ट फिक्सेचर ’शब्द को समझने के लिए उदाहरणों के एक जोड़े ने JUnit 4 जीवन चक्र एनोटेशन जैसे @Before, @After, @BeforeClass, @AfterClass, और @Test पर एक सिर के साथ शुरू किया।
=> सभी JUnit ट्यूटोरियल यहां देखें।
आप क्या सीखेंगे:
JUnit टेस्ट स्थिरता
जब एक JUnit वर्ग में कई परीक्षण मामले होते हैं, तो सभी परीक्षण मामलों द्वारा उपयोग की जाने वाली एक सामान्य वस्तु या वस्तुएं हो सकती हैं। इस मामले में, विशिष्ट कार्य हो सकते हैं जो सभी परीक्षण मामलों में आम हो सकते हैं।
इसका मतलब यह नहीं है कि परीक्षण वस्तुओं को सभी परीक्षण मामलों द्वारा साझा किया जाना है। एक परीक्षण में किए गए ऑब्जेक्ट में परिवर्तन को सभी परीक्षणों में साझा नहीं किया जाना चाहिए क्योंकि ये परीक्षण स्वतंत्र हैं और उन्हें एक अलग क्रम में उनके प्राथमिकता सेट के अनुसार निष्पादित किया जा सकता है।
डेटा माइनिंग में निर्णय ट्री वर्गीकरण
की समग्र समझ शब्द 'टेस्ट फिक्सचर' एक कोड में एक निश्चित स्थिति या एक कोड में निश्चित चरणों का एक सेट है जो एक पूर्व शर्त और कुछ अन्य चरणों के चरणों के रूप में उपयोग किया जाता है जो सभी परीक्षणों के लिए पोस्टकॉन्डिशन के रूप में उपयोग किए जाते हैं।
इस प्रकार, दूसरे शब्दों में, हम उन बयानों के उन सेटों की पहचान कर रहे हैं जो सभी परीक्षणों के लिए दोहराए जाएंगे और इस प्रकार, हमारे परीक्षण तरीकों को चलाने के लिए एक निश्चित वातावरण सेट करने का प्रयास करें।
उद्देश्य टेस्ट फिक्सचर का उपयोग करना सभी टेस्टकेस के लिए सामान्य कोड के दोहराव को खत्म करना है।
यूनिक्स खोल स्क्रिप्ट में grep कमांड
आइए एक JUnit परीक्षण में परीक्षण स्थिरता के व्यावहारिक कार्यान्वयन को समझने की कोशिश करें।
setUp () विधि
- ऐसे परीक्षण हैं जिन्हें कुछ वस्तुओं (स्ट्रिंग, पूर्णांक, या ArrayList या उस मामले के लिए किसी भी वस्तु) के आरंभ की आवश्यकता होती है। आप एक विधि बना सकते हैं सार्वजनिक शून्य सेटअप () जिसमें आप आम वस्तुओं के लिए उदाहरण चर घोषित कर सकते हैं। एनोटेशन के तहत इस सेटअप () विधि को रखें @इससे पहले । @Before एनोटेशन के साथ, फ्रेमवर्क प्रत्येक परीक्षण मामले के निष्पादन से पहले विधि सेटअप () चलाएगा।
- सेटअप () विधि का उपयोग भी किया जा सकता है, आप एक विशिष्ट URL के साथ एक ब्राउज़र लॉन्च करना चाहते हैं क्योंकि आप पहले चरण में एक परीक्षण केस चलाते हैं जो पूर्वनिर्धारित क्रेडेंशियल्स के साथ एप्लिकेशन में लॉगिन का अनुसरण करता है।
अश्रु () विधि
- यदि आपने एक परीक्षण में बाहरी संसाधनों को आवंटित किया है, तो आपको संसाधनों को मुक्त करना भी याद रखना चाहिए। परीक्षण मामले के निष्पादन के पूरा होने के बाद वस्तुओं की साफ-सफाई के लिए अशांति () पद्धति को जोड़ा जा सकता है। सेटअप () विधि के समान फैशन में, एक विधि जोड़ें सार्वजनिक शून्य अशांति () के अंतर्गत @उपरांत एनोटेशन। JUnit ढांचा यह सुनिश्चित करता है कि प्रत्येक परीक्षण मामले के चलने के बाद @After के तहत विधि निश्चित रूप से निष्पादित की जाती है। परीक्षण में उपयोग की जाने वाली वस्तुओं को अशक्त () विधि में NULL सेट किया जाना है ताकि परीक्षणों से कचरा एकत्र हो जाए।
- वस्तुओं की साफ-सफाई के लिए एक और अच्छा उम्मीदवार परीक्षण मामले के पूरा होने और उपयोग की गई वस्तुओं को नष्ट करके स्मृति को जारी करने के बाद कार्रवाई में एक ब्राउज़र को मार रहा है।
- विधि नाम setUp () और अश्रु () केवल एक उपयोगकर्ता द्वारा परिभाषित नाम है। आप कोई भी विधि नाम सेट कर सकते हैं जिसे आप चाहते हैं। यह सिर्फ विधि के साथ प्रयोग किया जाने वाला एनोटेशन है जो परीक्षणों के चलने के क्रम को तय करता है।
JUnit टेस्ट फिक्सचर उदाहरण
इस खंड में, हम JUnit 4 परीक्षण के दो उदाहरणों के माध्यम से जाएंगे और यह समझने की कोशिश करेंगे कि अलग-अलग जीवनचक्र एनोटेशन @Before, @After, @BeforeClass, @AfterClass, के अनुक्रम के साथ हमारे कोड में टेस्ट फिक्स्चर के दृष्टिकोण का उपयोग कैसे करें। और @ टस्ट।
बेशक, एनोटेशन पर एक अलग ट्यूटोरियल होगा जो स्पष्ट करेगा कि ये क्या हैं और प्रत्येक एनोटेशन कैसे काम करता है। अब तक, कोड में टेस्ट फिक्सचर उपयोग की समझ के लिए छड़ी दें।
JUnit 4 टेस्ट - उदाहरण 1
इस उदाहरण में, हमारे पास तीन परीक्षण मामलों के साथ कक्षा में परीक्षण जुड़नार होंगे। सेटअप () विधि @Before एनोटेशन और टियरडाउन () विधि के साथ @ एटरोड एनोटेशन के साथ।
कोड:
package demo.tests; import static org.junit.Assert.*; import org.junit.After; import org.junit.Before; import org.junit.Test; public class JUnitProgram { @Before public void setUp() { System.out.println('_______________________________________________________
'); System.out.println('This is the setUp() method that runs before each testcase'); } @Test public void test_JUnit1() { System.out.println('This is the testcase test_JUnit1() in this class'); } @Test public void test_JUnit2() { System.out.println('This is the testcase test_JUnit2() in this class'); } @Test public void test_JUnit3() { System.out.println('This is the testcase test_JUnit3() in this class'); } @After public void tearDown() { System.out.println('This is the tearDown() method that runs after each testcase'); System.out.println('_______________________________________________________
'); } }
परिणामी कंसोल विंडो नीचे दी गई है:
कंसोल विंडो यह स्पष्ट करती है कि प्रत्येक परीक्षण चलाने से पहले, सेटअप () विधि निष्पादित होती है, और प्रत्येक परीक्षण के पूरा होने के बाद, टियरडाउन () विधि चलती है।
इस प्रकार, प्रत्येक परीक्षण पद्धति के लिए एनोटेशन के अनुसार निष्पादन का क्रम है:
- @इससे पहले
- @परीक्षा
- @उपरांत
याद रखें कि परीक्षण यहाँ, क्रमिक क्रम में निष्पादित किए गए हैं अर्थात् test_JUnit1 (), test_JUnit2 (), test_JUnit3 (), परीक्षण में परिभाषित कोई अनुक्रम नहीं है, इसलिए वे किसी भी क्रम में निष्पादित कर सकते हैं। प्रत्येक परीक्षण को दूसरे परीक्षण से अलग किया जाता है।
JUnit 4 टेस्ट - उदाहरण 2
यहाँ, हम जल्दी से देख सकते हैं कि हमारे पास एक विधि कैसे हो सकती है जो एक कक्षा में पहली बार चलती है और दूसरी विधि जो एक बार चलने के बाद सभी परीक्षणों को कक्षा के लिए निष्पादित करती है।
कोड:
package demo.tests; import static org.junit.Assert.*; import org.junit.After; import org.junit.Before; import org.junit.Test; public class JUnitProgram { @BeforeClass public static void preClass() { System.out.println('This is the preClass() method that runs one time before the class'); } @Before public void setUp() { System.out.println('_______________________________________________________
'); System.out.println('This is the setUp() method that runs before each testcase'); } @Test public void test_JUnit1() { System.out.println('This is the testcase test_JUnit1() in this class'); } @Test public void test_JUnit2() { System.out.println('This is the testcase test_JUnit2() in this class'); } @Test public void test_JUnit3() { System.out.println('This is the testcase test_JUnit3() in this class'); } @After public void tearDown() { System.out.println('This is the tearDown() method that runs after each testcase'); System.out.println('_______________________________________________________
'); } @AfterClass public static void postClass() { System.out.println('This is the postClass() method that runs one time after the class'); } }
हमने @BeforeClass एनोटेशन के तहत प्रीक्लास () पद्धति को जोड़ा है। परीक्षण निष्पादित होने से पहले एक कक्षा के लिए यह विधि केवल एक बार चलती है। यह @Before निष्पादित के तहत विधि से पहले भी चलता है।
@AfterClass एनोटेशन के तहत पोस्टक्लास () विधि अंत में एक बार चलती है, जब @After के तहत परीक्षण सहित सभी परीक्षणों को निष्पादित और पूरा किया जाता है।
परीक्षण रन का क्रम इस प्रकार है:
- @कक्षा से पहले
- @इससे पहले
- @परीक्षा
- @उपरांत
- @क्लास के बाद
@BeforeClass और @AfterClass के तहत तरीकों को आमतौर पर वर्ग द्वारा साझा किया जाता है, यही वजह है कि अगर तरीकों को घोषित नहीं किया जाता है स्थिर तो यह एक देता है आरंभीकरण त्रुटि परीक्षण के निष्पादन पर।
मुफ्त पीसी अनुकूलन उपकरण विंडोज़ 10
नीचे स्क्रीनशॉट देखें, जहां हमने @BeforeClass एनोटेशन के तहत प्रीक्लास () विधि निर्धारित नहीं की है स्थिर और इस तरह परीक्षण ने निष्पादन पर गलत किया है।
आप परिणाम को आरंभिक त्रुटि दिखाते हुए देख सकते हैं जिसे विधि को स्थैतिक के रूप में चिह्नित करने पर समाप्त किया जा सकता है। वही @AfterClass एनोटेशन के तहत मेथड पोस्टक्लास () के लिए जाता है।
निष्कर्ष
हमने लागू करने के बाद होने वाली अच्छी प्रोग्रामिंग प्रथाओं पर एक संदर्भ निर्धारित करने की कोशिश की है टेस्ट फिक्सचर दृष्टिकोण और उपयोग और जीवन चक्र एनोटेशन के लिए निष्पादन के अनुक्रम की एक बुनियादी समझ।
हमारे अगले ट्यूटोरियल में, हम इसके बारे में सीखते हैं JUnit परीक्षणों को निष्पादित करने के विभिन्न तरीके ग्रहण में। इसलिए श्रृंखला के लिए तैयार रहें क्योंकि हम JUnit के अधिक दिलचस्प पहलुओं के साथ आगे बढ़ते हैं।
=> JUnit प्रशिक्षण ट्यूटोरियल के ए-जेड को देखने के लिए यहां देखें।
अनुशंसित पाठ
- JUnit टेस्ट: उदाहरण के साथ JUnit टेस्ट मामलों को कैसे लिखें
- शुरुआती के लिए JUnit ट्यूटोरियल - JUnit परीक्षण क्या है
- उदाहरणों के साथ अजगर डेटाइम ट्यूटोरियल
- जावा स्ट्रिंग में () विधि ट्यूटोरियल विथ उदाहरण हैं
- C # स्टेटमेंट का उपयोग करना और उदाहरण के लिए C # वर्चुअल मेथड ट्यूटोरियल
- सेलेनियम स्क्रिप्ट में JUnit फ्रेमवर्क और इसके उपयोग का परिचय - सेलेनियम ट्यूटोरियल # 11
- सेलेनियम उदाहरणों के साथ पाठ ट्यूटोरियल द्वारा तत्व का पता लगाएं
- जावा सरणी कोड कोड के साथ लंबाई ट्यूटोरियल