मैं एक नई परियोजना शुरू कर रहा हूं, और डिजाइन को चलाने के लिए टीडीडी का उपयोग करने की बहुत कोशिश कर रहा हूं। मैं वर्षों से जोर दे रहा हूं, और आखिरकार इस परियोजना पर अतिरिक्त समय बिताने के लिए इसे इस्तेमाल करने की मंजूरी मिल गई, जबकि मैं इसे ठीक से करना सीखता हूं।
यह एक नया मॉड्यूल है, एक मौजूदा सिस्टम में टाई करने के लिए। वर्तमान में, सभी डेटा एक्सेस webservices के माध्यम से होता है, जो कि अधिकांश भाग के लिए डेटाबेस संग्रहित प्रक्रियाओं पर सिर्फ एक पतला आवरण होता है।
एक आवश्यकता यह है कि किसी दिए गए स्टोर के लिए, मैं उन सभी खरीद आदेशों को वापस करता हूं जिन्हें इस एप्लिकेशन के लिए वैध माना जाता है। एक पीओ को वैध माना जाता है अगर यह जहाज की तारीख स्टोर खोलने की तारीख से दी गई सीमा के साथ गिरती है (यह नए स्टोर के लिए है)।
अब, मैं इस तर्क को एप्लिकेशन कोड में नहीं डाल सकता, क्योंकि मैं एक दर्जन पीओ को वापस लाने वाला नहीं हूं, केवल उस दर्जन को प्राप्त करने के लिए जो इस स्टोर पर लागू हो सकता है जो ऊपर दिए गए अवरोध को देखते हुए लागू कर सकता है।
मैं सोच रहा था, मैं एक GetValidPOs की खरीद के लिए तिथि सीमा को पारित कर सकता हूं, और क्या यह उन मूल्यों का उपयोग करता है जो वैध पीओ को वापस करते हैं। लेकिन, क्या होगा यदि हम एक और आवश्यकता जोड़ते हैं जो एक वैध पीओ माना जाता है?
और मैं यह कैसे परीक्षण करूं और सत्यापित करूं कि यह काम कर रहा है? हम ORM का उपयोग नहीं कर रहे हैं, और ऐसा होने की संभावना नहीं है। और मैं अपने परीक्षण में DB को कॉल नहीं कर सकता।
मैं फँस गया हूँ।
मेरे अन्य विचार में, कुछ ऐसे मॉक हैं जो वैध डेटा लौटाते हैं, अन्य जो कुछ खराब डेटा लौटाते हैं, और स्थानीय रिपॉजिटरी ने एक अपवाद फेंक दिया है यदि बुरा डेटा होता है, और परीक्षण करें कि अपवाद फेंका जाता है यदि अमान्य डेटा GetValidPOs द्वारा वापस खरीद लिया जाता है (या) परीक्षण में प्रयुक्त मॉक)।
इसका कोई मतलब भी है क्या? या कोई बेहतर तरीका है?
अद्यतन: मैं यह प्रतीत होता है EF का उपयोग करने में सक्षम हूँ। अब मुझे केवल यह पता लगाना है कि इसका उपयोग कैसे करना है, और इसे परीक्षण योग्य बनाना है, जबकि अभी भी संग्रहीत प्रक्रियाओं पर भरोसा करने में सक्षम है, और कई डेटाबेस में डेटा बिखरे होने की कठिनाई है।