JUnit ढांचे में 2 Assertवर्ग (विभिन्न पैकेजों में, स्पष्ट रूप से) और प्रत्येक पर विधियां समान होती हैं। क्या कोई समझा सकता है कि यह क्यों है?
जिन कक्षाओं का मैं जिक्र कर रहा हूं, वे हैं: junit.framework.Assertऔर org.junit.Assert।
JUnit ढांचे में 2 Assertवर्ग (विभिन्न पैकेजों में, स्पष्ट रूप से) और प्रत्येक पर विधियां समान होती हैं। क्या कोई समझा सकता है कि यह क्यों है?
जिन कक्षाओं का मैं जिक्र कर रहा हूं, वे हैं: junit.framework.Assertऔर org.junit.Assert।
जवाबों:
पुरानी विधि (जुइनिट 3 की) का विस्तार करके परीक्षण-कक्षाओं को चिह्नित करना था junit.framework.TestCase। यह विरासत में junit.framework.Assertही मिला और आपके परीक्षण वर्ग ने इस तरह से मुखर तरीकों को कॉल करने की क्षमता प्राप्त की।
JUnit के संस्करण 4 के बाद से, फ्रेमवर्क Annotationsअंकन परीक्षणों के लिए उपयोग करता है । इसलिए अब आपको विस्तार करने की आवश्यकता नहीं है TestCase। लेकिन इसका मतलब है, मुखर तरीके उपलब्ध नहीं हैं। लेकिन आप नए Assertवर्ग का स्थैतिक आयात कर सकते हैं । यही कारण है कि नई कक्षा में सभी मुखर तरीके स्थिर तरीके हैं। तो आप इसे इस तरह से आयात कर सकते हैं:
import static org.junit.Assert.*;
इस स्थैतिक आयात के बाद, आप उपसर्ग के बिना इस तरीके का उपयोग कर सकते हैं।
नए स्वरूप में वे नए पैकेज में चले गए org.junitजो पैकेज नामकरण के लिए सामान्य सम्मेलनों का बेहतर पालन करते हैं।
वहाँ वास्तव में एक कार्यात्मक परिवर्तन है: org.junit.Assertअगर आप दो तर्क का उपयोग शिकायत assertEquals()के साथ floatया doubleहै, जबकि junit.framework.Assertउसे बिना किसी autobox होगा।
मैंने एक मोटे स्रोत कोड की तुलना की और कोई गंभीर बदलाव नहीं हुआ। बहुत सारी टिप्पणियों को जोड़ा गया org.junit.Assertऔर कुछ रिफ्लेक्टरिंग किए गए। केवल परिवर्तन के साथ तुलना है Arrays। कुछ कोड क्लीनअप हैं, लेकिन इसमें (imho) कोई कार्यात्मक परिवर्तन नहीं है ।
एंड्रॉइड स्टूडियो में (और इंटेलीज में भी), आप वैश्विक रूप junit.frameworkसे ऑटो-आयात प्रस्ताव से बाहर कर सकते हैं ।
आप के बीच की गुंजाइश निर्धारित कर सकते हैं IDEया Project। यदि आपके पास ऐसी परियोजनाएं नहीं हैं जो JUnit 3 का उपयोग करती हैं तो आप सुरक्षित रूप से IDE दायरे में रह सकते हैं।
सेटिंग की स्थिति:
वरीयताएँ -> संपादक -> सामान्य -> ऑटो आयात
junit.framework.*स्थैतिक आयात ड्रॉपडाउन से बाहर कर सकते हैंEditor->General->Auto Import->Exclude from Import and Completion।