जुनीट 4.x शैली परीक्षण और परीक्षण सूट JUnit 3.x परीक्षण सूट से अलग तरीके से संभालते हैं।
टी एल; डॉ: आप JUnit3 शैली परीक्षण में शून्य पर खेतों स्थापित करना चाहिए लेकिन आप JUnit4 शैली परीक्षण में की जरूरत नहीं है।
JUnit 3.x शैली परीक्षण के साथ
, एक TestSuite
अन्य Test
वस्तुओं के लिए संदर्भ (TestCase
वस्तुओं या अन्य TestSuite
वस्तुओं हो सकता है) शामिल हैं। यदि आप कई परीक्षणों के साथ एक सूट बनाते हैं, तो बाहरीतम सूट के पूरे भाग के लिए सभी पत्ते TestCase
ऑब्जेक्ट्स के लिए कठिन संदर्भ होंगे। यदि आपकी कुछ टेस्टकेस ऑब्जेक्ट्स setUp()
में ऑब्जेक्ट आवंटित करती हैं जो बहुत सारी मेमोरी लेती हैं, और उन ऑब्जेक्ट्स के संदर्भ उन क्षेत्रों में संग्रहीत हैं जो null
पर tearDown()
में सेट नहीं हैं, तो आपके पास स्मृति समस्या हो सकती है।
दूसरे शब्दों में, जुनीट 3.x शैली परीक्षणों के लिए, वास्तविक परीक्षण TestCase
ऑब्जेक्ट्स को संदर्भित करने के लिए परीक्षणों का विनिर्देश। TestCase
ऑब्जेक्ट से पहुंचने योग्य किसी ऑब्जेक्ट को परीक्षण चलाने के दौरान स्मृति में रखा जाएगा।
जुनीट 4.x शैली परीक्षणों के लिए, कौन से परीक्षण चलाने के लिए Description ऑब्जेक्ट्स का उपयोग करता है। Description
ऑब्जेक्ट एक मान ऑब्जेक्ट है जो निर्दिष्ट करता है कि क्या चलाना है, लेकिन इसे कैसे चलाया जाए। परीक्षण Runner
ऑब्जेक्ट द्वारा चलाए जाते हैं जो परीक्षण या सूट के Description
लेते हैं और यह निर्धारित करता है कि परीक्षण कैसे निष्पादित किया जाए।परीक्षण श्रोता को परीक्षण की स्थिति की अधिसूचना भी Description
वस्तुओं का उपयोग करती है।
JUnit4 परीक्षण मामलों के लिए डिफ़ॉल्ट धावक, JUnit4, चारों ओर केवल कि परीक्षण की रन की अवधि के लिए परीक्षण वस्तु के लिए एक संदर्भ रहता है। यदि आप एक कस्टम धावक (@RunWith
एनोटेशन के माध्यम से) का उपयोग करते हैं, तो वह धावक लंबे समय तक परीक्षणों के संदर्भों को संदर्भित रख सकता है या नहीं।
शायद आप सोच रहे हैं कि क्या होता है यदि आप JUnit4-style Suite में जुनीट 3-शैली परीक्षण कक्षा शामिल करते हैं? JUnit4 new TestSuite(Class)
पर कॉल करेगा जो एक परीक्षण TestCase
प्रति परीक्षण विधि उदाहरण देगा। धावक परीक्षण चलाने के पूरे जीवन के लिए TestSuite
का संदर्भ रखेगा।
संक्षेप में, यदि आप JUnit4 शैली परीक्षण लिख रहे हैं, एक आंसू नीचे में null
के लिए अपने परीक्षण मामले के क्षेत्रों की स्थापना (निश्चित रूप से करते हैं, मुक्त संसाधनों) के बारे में चिंता मत करो। यदि आप JUnit3-style परीक्षण लिख रहे हैं जो setUp()
में बड़ी ऑब्जेक्ट्स आवंटित करते हैं और TestCase
के फ़ील्ड में उन ऑब्जेक्ट्स को स्टोर करते हैं, तो फ़ील्ड को null
पर सेट करने पर विचार करें।
दिलचस्प, मुझे नहीं पता था कि प्रत्येक विधि खुद टेस्ट उदाहरण का उपयोग करता है: हे Thanx ... – Xorty
यह JUnit के लिए ही है 4. –
ठीक है ... मदद के लिए हर किसी को thanx लेकिन यह मेरे लिए सबसे दिलचस्प जवाब है, तो मैं निशान यह स्वीकार्य है। – Xorty