मैंने कई बार इस दुविधा में भाग लिया है। क्या मेरे यूनिट-टेस्ट कार्यक्षमता कार्यक्षमता को डुप्लिकेट कर सकते हैं जिसकी वे अपनी अखंडता को सत्यापित करने के लिए परीक्षण कर रहे हैं? या यूनिट परीक्षणों को मैन्युअल रूप से बनाए गए इनपुट के उदाहरणों और अपेक्षित आउटपुट के साथ विधि का परीक्षण करने का प्रयास करना चाहिए?क्या एक इकाई-परीक्षण कार्यक्षमता या परीक्षण आउटपुट दोहराना चाहिए?
मैं मुख्य रूप से उन परिस्थितियों के लिए सवाल पूछ रहा हूं जहां आप जिस विधि का परीक्षण कर रहे हैं वह उचित रूप से सरल है और इसके उचित ऑपरेशन को एक मिनट के लिए कोड पर देखकर सत्यापित किया जा सकता है।
(माणिक में)सरलीकृत उदाहरण:
def concat_strings(str1, str2)
return str1 + " AND " + str2
end
सरलीकृत कार्यक्षमता को दोहराने वाला उपरोक्त विधि के लिए परीक्षण:
def test_concat_strings
10.times do
str1 = random_string_generator
str2 = random_string_generator
assert_equal (str1 + " AND " + str2), concat_strings(str1, str2)
end
end
मैं समझता हूँ कि अधिकांश समय विधि आप कर रहे हैं परीक्षण सरल नहीं होगा इस तरह से ऐसा करने के लिए पर्याप्त है। लेकिन मेरा सवाल बनी हुई है; क्या यह कुछ परिस्थितियों में एक वैध पद्धति है (क्यों या क्यों नहीं)?
मैं नहीं भी परिचित बुद्धि पहले परिदृश्य - जहां एक इकाई परीक्षण के लिए एक विधि की कार्यक्षमता डुप्लिकेट, आप थोड़ा विस्तार से बता सकते हैं? – RobS
टेस्ट संचालित विकास में मैं अक्सर यह सत्यापित करने के लिए एक परीक्षण बना रहा हूं कि एक (अभी तक लिखित) विधि अपेक्षित कार्य करता है। मैं इनपुट परिदृश्यों से वांछित आउटपुट प्राप्त करने के लिए एक प्रोग्रामेटिक तरीके से, इन परिदृश्यों को सर्वोत्तम तरीके से लिखने के लिए, सरल परिदृश्यों में, अक्सर प्रलोभन करता हूं। कभी-कभी मुझे लगता है कि नौकरी पाने के लिए मुझे थोड़ी सी कोड लिखने की अपेक्षा गलती की गणना करने और अनुमानित परिणामों में प्रवेश करने की अधिक संभावना होगी। –
बहुत अच्छा सवाल - मुझे लगता है कि यह एक बार और केवल एक बार के नियम के लिए अपवाद है .. जब तक मुझे नहीं पता कि यह सही तरीके से कैसे प्रतिक्रिया करें। – Gishu