/ / आप मॉकिंग लेते हैं - तत्काल निर्भरता, या आप सीमाएं बढ़ते हैं ...? - यूनिट-परीक्षण, मॉकिंग, एकीकरण-परीक्षण

आप मजाक कर रहे हैं - तत्काल निर्भरता, या आप सीमाएं बढ़ते हैं ...? - यूनिट-परीक्षण, मॉकिंग, एकीकरण-परीक्षण

इसलिए, मैं यूनिट परीक्षण दोनों के लिए उचित रूप से नया हूंसी # और .NET में मज़ाकिया; मैं क्रमशः xUnit.net और राइनो मोक्स का उपयोग कर रहा हूं। मैं "कन्वर्ट करता हूं, और मैं लेखन व्यवहार विनिर्देशों पर ध्यान केंद्रित कर रहा हूं, मुझे लगता है कि, पूरी तरह से टीडीडी होने के बजाय। बह, अर्थशास्त्र; मैं एक स्वचालित सुरक्षा नेट ऊपर काम करने के लिए चाहता हूं, अनिवार्य रूप से।

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

दृष्टिकोण यह प्रतीत होता है कि अगर हम इसे सत्यापित करते हैंवर्ग व्यवहार करता है क्योंकि इसे अपनी सहयोगी निर्भरताओं के खिलाफ होना चाहिए, और बदले में उन सहयोगी निर्भरताओं पर निर्भर करता है, जिन्होंने समान गुणवत्ता अनुबंध पर हस्ताक्षर किए हैं, हम सुनहरे हैं। उचित उचित लगता है।

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

उत्तर:

जवाब के लिए 0 № 1

आपके प्रश्न पर वर्षों से बहस हुई है और इसे "इकाई क्या है" के रूप में भी दोहराया जा सकता है?

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

एक जगह मैं बिल्कुल एक तरह का झुकाव का उपयोग करता हूं या दूसरा माइकल फेदर का पालन करना है यूनिट परीक्षण के नियम.


जवाब के लिए 0 № 2

मैं एकीकरण परीक्षण में मूल्य नहीं देखता हूं जो पूरी तरह से यूनिट टेस्टेबल आंतरिक कक्षाओं को एक साथ जोड़ता है।

ऐसा लगता है कि एकीकरण परीक्षणों में मूल्य यह है कि यह मंच या बाहरी इंटरफेस को छूता है, यानी अनुबंध आप यूनिट परीक्षण नहीं कर सकते हैं।