बस एक परीक्षण परियोजना बनाना और कुछ परीक्षण विधियां लिखना एक तरह का TDD है, लेकिन मेरे अनुभव में यह तब तक बहुत मददगार नहीं है जब तक कि आप एक पुस्तकालय पर काम नहीं कर रहे हैं जहाँ एक ज्ञात एपीआई है और विधि कॉल सीधे उपयोगकर्ता द्वारा अपेक्षित किसी चीज़ से मेल खाती है। । आपको परीक्षणों की सही सूची के साथ आने की आवश्यकता है, और एक गैर-तुच्छ अनुप्रयोग के लिए, जो वास्तव में करना मुश्किल हो सकता है।
मैं SpecFlow की कोशिश करने की सलाह देता हूं - यह परीक्षणों को कार्यान्वयन से अलग करता है और फीचर फ़ाइलों की संरचना आपको यह सोचने के लिए मजबूर करती है कि आप वास्तव में क्या परीक्षण कर रहे हैं।
जब आप किसी विशेषता को परिभाषित करते हैं तो आप कुछ ऐसा लिखते हैं
When a user is saved
Then the user should exist
क्योंकि आप इस बिंदु पर कोड फ़ाइल में नहीं हैं, इसलिए आपको कार्यान्वयन विवरण के बारे में सोचने का मोह नहीं है, जैसे उपयोगकर्ता को बनाने के लिए किस विधि को बुलाया जाता है या यहां तक कि इसे किस वर्ग में लागू किया जाता है। आप अलग-अलग कार्यान्वयन चुनने के लिए टैग का उपयोग कर सकते हैं। इसलिए इस स्तर पर यह मायने नहीं रखता कि "उपयोगकर्ता सहेजा गया है" का अर्थ है क्रिएटयूजर को कॉल करना या ब्राउज़र खोलना और फॉर्म सबमिट करना।
एक बार जब आपके पास परिभाषित विशेषताएं हो जाती हैं, तो सभी परीक्षण उत्पन्न हो जाते हैं और जैसे ही आप कदम परिभाषाओं को लागू करना शुरू करेंगे और वास्तविक आवेदन कोड का परीक्षण किया जाएगा।
एक साधारण ऐप के लिए आप केवल फ़ीचर फाइल्स बना सकते हैं, लेकिन किसी भी अधिक जटिल चीज़ के लिए पहले से अधिक पूर्ण युक्ति को एक साथ रखना उपयोगी होता है। मैं इसके लिए एक iPad माइंडमैपिंग ऐप का उपयोग करता हूं, लेकिन आप जिस भी टूल का उपयोग कर सकते हैं, उसके साथ सबसे अधिक आरामदायक हैं।
"उपयोगकर्ता पंजीकरण" जैसी उच्च स्तरीय सुविधाओं की सूची से शुरू करें। ये सीधे तौर पर परीक्षण लिखने के लिए बहुत व्यापक होते हैं, इसलिए उन्हें उन सबफ़्रीट्स में तोड़ दें जिन्हें स्पष्ट रूप से परिभाषित किया जा सकता है और आम तौर पर "उपयोगकर्ता सहेजें" या "मौजूदा उपयोगकर्ता देखें" जैसी विशिष्ट उपयोगकर्ता कार्रवाई के लिए मैप किया जाता है।
इनमें से प्रत्येक सबफ़्रीचर को उन परिदृश्यों की एक सूची की आवश्यकता होगी जो एक साथ पूरी तरह से परिभाषित करते हैं कि सुविधा काम कर रही है या नहीं, "मान्य उपयोगकर्ता को बचा सकता है" और "डुप्लिकेट उपयोगकर्ता नाम के साथ उपयोगकर्ता को नहीं बचा सकता है" जैसी चीजें।
जैसा कि आप इस सूची का निर्माण करते हैं, यह आम तौर पर स्पष्ट हो जाएगा कि संरचना को समायोजित करने की आवश्यकता है - यदि आप किसी सुविधा के लिए किसी भी परिदृश्य परीक्षण के साथ नहीं आ सकते हैं, या आप एक विशेषता में बहुत से समाप्त होते हैं, तो संभवतः उस सुविधा को परिभाषित किया जाता है गलत स्तर और विभाजित या परिवर्तित होने की आवश्यकता है।