इकाई एक टाइमर आधारित आवेदन परीक्षण?

मैं वर्तमान में सी # में एक साधारण, टाइमर आधारित मिनी ऐप लिख रहा हूं जो प्रत्येक के सेकेंड में एक्शन एन बार करता है।
मैं एक परीक्षण संचालित विकास शैली को अपनाने की कोशिश कर रहा हूं, इसलिए मेरा लक्ष्य ऐप के सभी हिस्सों का परीक्षण करना है।

तो, मेरा सवाल है: क्या टाइमर आधारित कक्षा का परीक्षण करने का कोई अच्छा तरीका है?

समस्या, जैसा कि मैंने इसे देखा है, यह है कि एक बड़ा जोखिम है कि परीक्षणों को निष्पादित करने में असुविधाजनक लग जाएगा, क्योंकि उन्हें वांछित कार्यों के लिए इतनी देर तक इंतजार करना होगा।
विशेष रूप से यदि कोई ढांचा (1 एमएस?) द्वारा अनुमत न्यूनतम समय संकल्प का उपयोग करने के बजाय यथार्थवादी डेटा (सेकेंड) चाहता है।
मैं कार्रवाई के लिए एक नकली वस्तु का उपयोग कर रहा हूं, कार्रवाई के समय की संख्या पंजीकृत करने के लिए, और इसलिए कि कार्रवाई व्यावहारिक रूप से कोई समय नहीं लेती है।

0
ro fr bn

4 उत्तर

0
जोड़ा

मैंने जो किया है वह टाइमर और वर्तमान सिस्टम समय का नकल करना है, कि मेरी घटनाओं को तुरंत ट्रिगर किया जा सकता है, लेकिन जहां तक ​​परीक्षण के तहत कोड का समय था, समय बीत गया था।

0
जोड़ा

मैं डैनी के साथ सहमत हूं क्योंकि यह संभवतः टाइमर तंत्र के बारे में भूलने के लिए यूनिट-परीक्षण परिप्रेक्ष्य से समझ में आता है और केवल यह सत्यापित करता है कि कार्रवाई स्वयं अपेक्षा के अनुसार काम करती है। मैं यह भी कहूंगा कि मैं इस बात से असहमत हूं कि किसी प्रकार के स्वचालित परीक्षण सूट में टाइमर की कॉन्फ़िगरेशन को शामिल करने के लिए यह बर्बाद प्रयास है। समय अनुप्रयोगों के साथ काम करने की बात आती है तो बहुत सारे एज केस होते हैं और परीक्षण की आसान चीजों का परीक्षण करके सुरक्षा की झूठी भावना पैदा करना बहुत आसान होता है।

मैं परीक्षणों का एक सूट रखने की सिफारिश करता हूं जो टाइमर के साथ-साथ असली कार्रवाई भी चलाता है। इस सूट में शायद थोड़ी देर लगने लगेगा और संभवतः ऐसा कुछ नहीं होगा जो आप अपनी स्थानीय मशीन पर हर समय चलेंगे। लेकिन इन प्रकार की चीजों को एक रात के स्वचालित निर्माण पर सेट करने से वास्तव में खोजने और ठीक करने में बहुत मुश्किल हो जाने से पहले बग को रूट करने में मदद मिल सकती है।

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

0
जोड़ा

मुझे लगता है कि मैं इस मामले में क्या करूँगा वह कोड है जो वास्तव में निष्पादित करता है जब टाइमर टिकता है, पूरे अनुक्रम की बजाय। आपको वास्तव में यह तय करने की ज़रूरत है कि क्या आपके लिए आवेदन के वास्तविक व्यवहार का परीक्षण करना उचित है (उदाहरण के लिए, यदि प्रत्येक टिक में एक टिक से दूसरे में भारी परिवर्तन होने के बाद क्या होता है), या यह पर्याप्त है (यानी , कार्रवाई हर समय एक ही है) बस अपने तर्क का परीक्षण करने के लिए।

चूंकि टाइमर के व्यवहार की गारंटी कभी नहीं बदली जाती है, यह या तो ठीक से काम करने जा रहा है (यानी, आपने इसे सही तरीके से कॉन्फ़िगर किया है) या नहीं; ऐसा लगता है कि अगर आपको वास्तव में आवश्यकता नहीं है तो अपने परीक्षण में शामिल करने के लिए बर्बाद प्रयास होना प्रतीत होता है।

0
जोड़ा
आपके दृष्टिकोण के साथ एकमात्र समस्या यह है कि आपको शायद कुछ ऐसा करना होगा जो हर बार चुनाव होता है, क्या यह एक अच्छा विचार है? यानी ऐसा कुछ उजागर करना जो आपको केवल परीक्षणों के लिए नहीं है। एक विकल्प आंतरिक हो सकता है (और InternalsVisibleTo) लेकिन बहुत से लोग इसे पसंद नहीं करते हैं
जोड़ा लेखक roundcrisis, स्रोत
QAIndia
QAIndia
160 प्रतिभागियों की

QA India ! Unite Here we share job postings , prepare for interviews and share tips/techniques in QA. Please follow following guideline while sharing any job ... QA job # location : # title Company : Title : Requirement: Responsibility: Apply: