इस ब्लॉग पोस्ट में, मैं बताऊंगा कि इन तरीकों के बीच मुख्य अंतर क्या है। सबसे पहले तो ये कि हम इन तरीकों का इस्तेमाल क्यों करते हैं. यह विधि तब उपयोगी होगी जब हम अपनी विधियों के प्रदर्शन का परीक्षण करेंगे या हम जानना चाहेंगे कि हमारी विधि को पूरा होने में कितना समय लगता है।
सबसे पहले हमें अपनी परीक्षण विधि को समय देना होगा, उसके बाद ये परीक्षण परीक्षण में संचालन निष्पादित करते हैं। यदि इस ऑपरेशन में निर्दिष्ट से अधिक समय लगता है और तो यह परीक्षण विफल हो जाएगा।
ठीक है, अब हम जानते हैं कि ये विधियां क्या हैं, हम अपनी परीक्षण विधियों में इनका उपयोग क्यों करते हैं। तो फिर हमें अंतर जानना चाहिए।
मुझे संक्षेप में समझाने दीजिए। assertTimeout विधि हमारे द्वारा दिए गए समय को गिनती है, यदि हमारी परीक्षण विधि निर्दिष्ट से अधिक समय लेती है, तो सभी ऑपरेशन पूरा होने के बाद यह परीक्षण विफल हो जाएगा। हालाँकि, यदिassertTimeoutPreemptively विधि निर्दिष्ट से अधिक समय लेती है, तो यह विधि तुरंत विफल हो जाएगी। और यह सभी प्रक्रियाओं के पूरा होने तक इंतजार नहीं करेगा, हम अगले चरण में प्रोजेक्ट में इसका परीक्षण करेंगे।
सबसे पहले अपनी पसंदीदा आईडीई खोलें। मैंने Intellij Idea खोला क्योंकि यह IDE जावा डेवलपर्स के बीच बहुत लोकप्रिय है। बेशक आप पसंदीदा आईडीई का उपयोग कर सकते हैं जैसे कि एक्लिप्स, नेटबीन्स जो भी आपको पसंद हो।
अब एक नया मावेन प्रोजेक्ट बनाएं और इन 2 निर्भरताओं को अपनी pom.xml फ़ाइल में जोड़ें।
org.junit.jupiter junit-jupiter-api 5.3.1 test org.junit.jupiter junit-jupiter-engine 5.3.1 test
इन्हें जोड़ने के बाद src/test/java फ़ोल्डर खोलें और
नई कक्षा बनाएं और जो नाम आप चाहें वह दें, मैं टाइमआउटटेस्ट दूंगा।
2 परीक्षण विधियां बनाएं, उनमें से एक AssertTimeout का परीक्षण करती है और दूसरा AssertTimeoutPreemptively का परीक्षण करती है।
उसके बाद मैं अवधि देता हूं और सरल प्रिंट संदेश जोड़ता हूं।
मैं थ्रेड.स्लीप() विधि जोड़ता हूं और थ्रेड स्लीप 8000 एमएस (8 सेकंड)। लेकिन ये दोनों विधियां विफल हो जाएंगी क्योंकि इन विधियों में 3 सेकंड से अधिक समय लगता है। बेहतर ढंग से समझने के लिए मुझे इन तरीकों का परीक्षण करने दीजिए।
और आप देखते हैं कि testAssertTimeout विधि 8s 3ms लेती है क्योंकि यह विधि सभी ऑपरेशनों को पूरा करने के लिए प्रतीक्षा करती है, लेकिन दूसरी विधि 3s 45ms लेती है, और यह अन्य प्रक्रिया को पूरा करने के लिए प्रतीक्षा नहीं करती है , यह तुरंत विफल हो जाता है।
आप संदेश देख सकते हैं testAssertTimeout विधि संदेश को प्रिंट करती है लेकिन AssertTimeoutPreemptively विधि संदेश को प्रिंट नहीं करती है, इसने अन्य परिचालनों को नजरअंदाज कर दिया है।
इस पोस्ट में हमनेassertTimeout औरassertTimeoutPreemptively के बीच मुख्य अंतर के बारे में बात की।
आखिरकार, कोड जीथब पर उपलब्ध है।
अपना ख्याल रखें, जल्द ही मिलते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3