मुझे हमारे ग्राहकों में से एक को एक साधारण आवेदन की आपूर्ति करने के लिए एक छोटा सा पक्ष-परियोजना करने के लिए कहा गया है। आम तौर पर मैं बैक-एंड कोड पर काम कर रहा होता हूं, जहां मेरे पास मेरे सभी परीक्षण की ज़रूरतें पता चल जाती हैं, और मुझे अभी तक GUI के लिए परीक्षण लिखने का संदिग्ध आनंद नहीं मिला है, इसलिए यह मेरे लिए थोड़ा अस्पष्ट है कि मुझे कैसे सेट करना चाहिए एक EXE के लिए परीक्षण कोड और उपकरण।
मेरी पहली वृत्ति केवल एप्लिकेशन कोड के साथ परीक्षणों को शामिल करने के लिए थी, हालांकि इसके लिए कई परीक्षण-विशिष्ट निर्भरता की आपूर्ति की आवश्यकता होगी, जिसे मुझे विशेष रूप से ग्राहक को नहीं भेजने का निर्देश दिया गया है। मैं एक उद्देश्य से निर्मित परीक्षण उपकरण के लिए किसी भी नकदी को निचोड़ने में असमर्थ हूं, इसलिए मुझे उन उपकरणों का उपयोग करने की आवश्यकता है जो मेरे पास हैं ( StoryQ , RhinoMocks , और NUnit), जो वास्तव में एक साधारण जीयूआई ऐप के व्यवहार का परीक्षण करने के लिए पर्याप्त से अधिक होना चाहिए। जहां तक मैं देख सकता हूं, यह मुझे डिजाइन को वास्तव में सरल रखने के बीच एक अच्छा संतुलन बनाने की कोशिश कर रहा है, या परीक्षण के उद्देश्य से उद्देश्यपूर्ण इंजीनियरिंग। ऐसा लगता है कि मैं या तो एक अलग पुस्तकालय में व्यावसायिक तर्क के साथ एप्लिकेशन का निर्माण कर रहा हूं और पुस्तकालय के खिलाफ परीक्षण कर रहा हूं जैसा कि मैं आमतौर पर करता हूं, या अतिरिक्त मॉड्यूल को तोड़ने के बिना मुझे निष्पादन योग्य के लिए अनुमति देने के लिए कुछ अन्य तंत्र ढूंढ रहा है जो कि एप्लिकेशन डिज़ाइन नहीं करता है वास्तव में जरुरत है।
संपादित करें:
कृपया ध्यान दें कि यह प्रश्न NUnit और मेरे निष्पादन योग्य के बीच संबंधों को कैसे संरचित करता है - एक DLL के विपरीत - और प्रस्तुति और व्यावसायिक तर्क को अलग करने के तरीके के बारे में नहीं।
/ संपादित करें
तो मेरा सवाल है:
- क्या यूनिट परीक्षणों के साथ एक सरल जीयूआई एप्लिकेशन को कॉन्फ़िगर करने के लिए एक विशिष्ट / अनुशंसित तरीका है जो मुझे राज्य और व्यवहार की पर्याप्त रूप से जांच करने की अनुमति देता है, जो कि मेरे पास मौजूद उपकरणों का उपयोग करते हुए और बिना इंजीनियरिंग का सहारा लिए?
- क्या मैंने NEnit को EXE (जब एक DLL के विपरीत) का परीक्षण किया है, तो जिस तरह से इसे लागू / कॉन्फ़िगर किया जाना चाहिए, उसके बारे में कुछ मौलिक याद किया गया है?
- क्या आप मुझे इस बात के उदाहरणों की दिशा में प्रदान या इंगित कर सकते हैं कि यह सब कैसे प्राप्त करें?
मुझे लगता है कि ऐसा करने का एक से अधिक तरीका हो सकता है इसलिए मैं आपके अनुभव के आधार पर विशिष्ट कार्यान्वयन दिशानिर्देशों की तलाश कर रहा हूं।