2011-09-04 10 views
12

के साथ जुनीट का उपयोग कैसे करें I ग्रहण का एक लंबा समय उपयोगकर्ता है लेकिन यह एक नौसिखिया है जब यह जुनीट की बात आती है। मेरे पास बहुत सारी जावा परियोजनाएं हैं और मैं उन परियोजनाओं में विधियों के चारों ओर टेस्ट केस लिखना शुरू करना चाहता हूं। मैं इस उद्देश्य के लिए ग्रहण पर्यावरण स्थापित करने का सबसे अच्छा तरीका सोच रहा हूं। आइए मान लें कि मेरे पास एक विशिष्ट प्रोजेक्ट में एक विशिष्ट स्रोत निर्देशिका के साथ एक सामान्य प्रोजेक्ट है। मैं उस परियोजना में टेस्ट केस कैसे संलग्न करूं? कुछ चिंताओं: 1. मैं नहीं चाहता कि टेस्ट केस परियोजना पर बनाए गए किसी भी निर्माण का हिस्सा हों। 2. मैं परीक्षण-सूट में स्थितियों को संदर्भित करना चाहता हूं।ग्रहण

क्या मैं उस पैकेज के तहत एक अलग परीक्षण निर्देशिका स्थापित करता हूं जिसे मैं परीक्षण करना चाहता हूं? क्या मेरे पास एक अलग परीक्षण पैकेज है? इसे करने का बेहतरीन तरीका क्या है?

उत्तर

8

यह बहुत मृत सरल है:

  • खींचें या अन्यथा आपकी lib फ़ोल्डर में JUnit जार फ़ाइल, तो अपनी परियोजनाओं सेटिंग्स का निर्माण शामिल करने के लिए संशोधित।
  • 'test'
  • नामक अपनी प्रोजेक्ट के तहत एक और स्रोत फ़ोल्डर बनाएं 'परीक्षण' स्रोत फ़ोल्डर के नीचे अपने परीक्षण पैकेज बनाएं। सर्वोत्तम अभ्यास आपके आवेदन के पैकेज नामों की नकल करना है।
  • परीक्षण पैकेज के अंदर अपनी परीक्षा कक्षाएं बनाएं। सर्वोत्तम प्रथाओं आपके आवेदन कक्षाओं की नकल करना है जिन्हें परीक्षण की आवश्यकता है, लेकिन नाम के अंत में परीक्षण संलग्न करें। तो अपने मुख्य आवेदन में उदाहरण के लिए यदि आप एक myapp.service.PrintService हो सकता है और एक इसी परीक्षण के रूप में आप myapp.service.PrintServiceTest
  • होता junit.framework.TestCase
  • से प्रत्येक परीक्षा वर्ग का विस्तार
  • अपने परीक्षण चलाएँ TestRunner का उपयोग कर कक्षाएं।

जब आप अपने एप्लिकेशन के परिनियोजन बंडल का निर्माण करते हैं तो बस 'परीक्षण' स्रोत फ़ोल्डर को बाहर कर दें। अब, यदि आप वास्तव में मृत आसान परीक्षण एकीकरण छोड़ना चाहते हैं तो अपने प्रोजेक्ट को सेटअप करने के लिए मेवेन का उपयोग करें। यह बल्ले से बाहर आपके लिए सभी बेहतरीन प्रथाओं में झुकता है।

+3

चूंकि जुनीट ग्रहण के साथ आता है, इसलिए आपको JAR फ़ाइल की आवश्यकता नहीं है, फिर भी आप इसे प्रोजेक्ट कॉन्फ़िगरेशन में लाइब्रेरी के रूप में जोड़ सकते हैं, हालांकि यदि आप चींटी से परीक्षण चलाने के लिए जार की आवश्यकता है। और 2006 में जुनीट 4 जारी होने के बाद से टेस्टकेस का विस्तार करना आवश्यक नहीं था। आपको वास्तव में इसका उपयोग करने के तरीके को सीखने के लिए समय लेना चाहिए, क्योंकि यह कुछ चीजों को सरल बनाता है। –

+0

यदि आप एक अलग उत्तर पोस्ट करना चाहते हैं कि जुनीट एनोटेशन का उपयोग कैसे करें, तो ऐसा करने में संकोच न करें। टूल के बारे में मेरे ज्ञान पर सवाल न करें क्योंकि मैं आपके परीक्षणों को अलग से लागू करना चुनता हूं। – Perception

+4

मैं जेनिट 4 में रुचि की कमी के अलावा आजकल टेस्टकेस का विस्तार क्यों करना चाहूंगा क्योंकि मैं ईमानदारी से दिलचस्पी लेता हूं क्योंकि जुनीट 3 "काफी अच्छा" रहा है। –

0

एक साधारण समाधान विशेष रूप से परीक्षण से संबंधित वर्गों के लिए एक और स्रोत निर्देशिका बनाना होगा। उदाहरण के लिए, यदि आपकी मुख्य कक्षा $PROJECT_ROOT/src में रहती है, तो आप अपने परीक्षण-संबंधित कक्षाओं को $PROJECT_ROOT/src-test में डाल सकते हैं। मैं ग्रहण काम नहीं है, लेकिन मैं जानता हूँ कि आप इस नए निर्देशिका में शामिल करने के $PROJECT_ROOT/.classpath फ़ाइल (यह एक्सएमएल) संशोधित कर सकते हैं कि:

<classpath> 
    <classpathentry kind="src" path="src"/> 
    <classpathentry kind="src" path="src-test"/> <!-- ADD THIS ONE --> 
    ... 
</classpath> 

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

3

परीक्षण कोड को व्यवस्थित करने के लिए सबसे अच्छा (या कम से कम सबसे आम) तरीका परीक्षण कोड के लिए एक अलग स्रोत फ़ोल्डर होना है, इस प्रकार इसे अच्छी तरह से अलग रखा जा रहा है। ग्रहण में, आप प्रोजेक्ट के गुणों में "बिल्ड पथ" के अंतर्गत स्रोत फ़ोल्डर्स जोड़ सकते हैं।

हालांकि, कक्षाओं का परीक्षण करने के लिए अपने परीक्षण वर्गों को उसी पैकेज में रखना भी एक अच्छा विचार है (यानी परीक्षण स्रोत फ़ोल्डर में एक ही पैकेज पदानुक्रम है)। यह आपको पैकेज निजी और संरक्षित तरीकों को कॉल करने के लिए कोड का परीक्षण करने की अनुमति देता है, जिससे आंतरिक व्यवहार का परीक्षण करना अधिक आसान हो जाता है जिसे सार्वजनिक एपीआई में प्रकट नहीं किया जाना चाहिए।