मुझे इस सवाल पर थोड़ा सा वकील की भूमिका निभानी चाहिए क्योंकि अनुभव की कमी के कारण मैं इसका अच्छी तरह से बचाव नहीं कर सकता। यहाँ सौदा है, मुझे वैचारिक रूप से यूनिट परीक्षण और एकीकरण परीक्षण के बीच के अंतर मिलते हैं । जब विशेष रूप से दृढ़ता के तरीकों और रिपॉजिटरी पर ध्यान केंद्रित किया जाता है, तो एक यूनिट टेस्ट संभवतः मॉक जैसे फ्रेमवर्क के माध्यम से एक नकली का उपयोग करेगा जो यह कहता है कि एक ऑर्डर जो खोजा गया था, वह उम्मीद के मुताबिक वापस आ गया था।
मान लीजिए कि मैंने निम्नलिखित इकाई परीक्षण का निर्माण किया है:
[TestMethod]
public void GetOrderByIDTest()
{
//Uses Moq for dependency for getting order to make sure
//ID I set up in 'Arrange' is same one returned to test in 'Assertion'
}
इसलिए अगर मैं सेट करता हूं OrderIdExpected = 5
और मेरी नकली वस्तु 5
आईडी के रूप में लौटती है तो मेरा परीक्षण पास हो जाएगा। मैं समझ गया। मैंने यह सुनिश्चित करने के लिए कोड का परीक्षण किया कि मेरा कोड क्या अपेक्षित वस्तु और आईडी लौटाता है और कुछ और नहीं।
मुझे जो तर्क मिलेगा वह यह है:
"क्यों न केवल इकाई परीक्षण छोड़ें और एकीकरण परीक्षण करें; यह डेटाबेस संग्रहीत कार्यविधि और आपके कोड को एक साथ परीक्षण कर रहा है जो महत्वपूर्ण है। ऐसा लगता है कि इकाई परीक्षण और एकीकरण परीक्षण करने के लिए बहुत अधिक अतिरिक्त काम तब होता है जब अंततः मैं जानना चाहता हूं कि क्या डेटाबेस कॉल करता है। और कोड काम करता है। मुझे पता है कि परीक्षण अधिक समय लेते हैं, लेकिन उन्हें चलाने और परीक्षण करने की परवाह किए बिना इसलिए कि यह दोनों के लिए मेरे लिए व्यर्थ लगता है। बस क्या मामलों के खिलाफ परीक्षण करें। "
मैं इसे एक पाठ्य पुस्तक की परिभाषा के साथ बचाव कर सकता था: "वैसे यह एक एकीकरण परीक्षण है और हमें एक इकाई परीक्षण के रूप में कोड को अलग से परीक्षण करने की आवश्यकता है और, यादा, यादा, यादा ..." यह एक ऐसा मामला है जहां प्रथाओं का शुद्ध विवरण है बनाम वास्तविकता बाहर खो रही है। मैं कभी-कभी इसमें भाग लेता हूं और अगर मैं यूनिट परीक्षण कोड के पीछे के तर्क का बचाव नहीं कर सकता हूं जो अंततः बाहरी निर्भरता पर निर्भर करता है, तो मैं इसके लिए एक मामला नहीं बना सकता।
इस सवाल पर कोई मदद काफी सराहना की है, धन्यवाद!