मैं परीक्षण संचालित विकास के बारे में बहुत कुछ पढ़ रहा हूं और फैसला किया है कि मैं इसे एक छोटी परियोजना पर जाना चाहता हूं। संदर्भ के लिए, मैं वर्तमान में 'ग्रोइंग ऑब्जेक्ट-ओरिएंटेड सॉफ्टवेयर, टेस्ट द्वारा निर्देशित' पढ़ रहा हूं।मैं मैक (कोको) अनुप्रयोगों के लिए एंड-टू-एंड परीक्षण कैसे बना सकता हूं?
मैं समझता हूं कि यूनिट के मेरे कुछ हिस्सों का परीक्षण कैसे करें और यूआई के कुछ हिस्सों को यूनिट कैसे परीक्षण करें, लेकिन मैं अंत तक परीक्षणों को स्थापित करने के लिए संघर्ष कर रहा हूं। उदाहरण के लिए, परीक्षण करना कि मेरे पूरे एप्लिकेशन के माध्यम से एक निश्चित पथ सही आउटपुट उत्पन्न करता है (यह अंत-टू-एंड टेस्ट की मेरी मूलभूत समझ है)।
क्लिक ईवेंट अनुकरण करना आवश्यक नहीं है, लेकिन यूआई को कुछ प्रकार का कनेक्शन होना जरूरी है।
क्या मुझे यह सोचने में सही है कि मुझे "तर्क" परीक्षण (ऐप लॉन्च किए बिना परीक्षण), "एप्लिकेशन" परीक्षण (ऐप लॉन्च करने के साथ परीक्षण) और जीएचयूनीट जैसी कुछ की एसिंक्रोनस कार्यक्षमता को पूरा करने के लिए एक संयोजन की आवश्यकता है?
संपादित करें:
नीचे जवाब में से कुछ पढ़ने के बाद, ऐसा लगता है जैसे मैं कार्यात्मक एंड-टू-एंड के परीक्षण के लिए देख रहा हूँ लगता है, लेकिन मुझे लगता है कि के रूप में मैं यह कल्पना मैं एक परीक्षण का एक उदाहरण देना चाहिए।
- एप्लिकेशन प्रारंभ करें।
- एक परीक्षण उपयोगकर्ता प्रमाण-पत्र के साथ लॉगिन फ़ंक्शन को कॉल करें। (नोट: जरूरी नहीं कि यूआई स्वचालन की आवश्यकता हो)।
- विंडो पर एक लेबल सत्यापित करें "लॉग इन ..." कहता है।
- उपयोगकर्ता को सफलतापूर्वक सत्यापित करने के बाद, अब लेबल "सत्यापित करें, एडम!" कहता है।
केआईएफ लगता है जैसे यह काम कर सकता है, क्योंकि इसमें यूआई तत्वों में बदलावों की जांच करने के लिए कदम हैं और ऐसा लगता है कि मैक ओएसएक्स शाखा भी है। मुझे यकीन है कि मैं एक छोटी सी कक्षा भी लिख सकता हूं जो लगातार यूआई को उन बदलावों के लिए चुनाव करता है जो मुझे उम्मीद है और एक निश्चित समय के बाद समय-समय पर, लेकिन मुझे आश्चर्य है कि क्या यह इसके बारे में जाने का सही तरीका है।
हालांकि, शायद मैं 'ग्रोइंग ऑब्जेक्ट-ओरिएंटेड सॉफ्टवेयर, टेस्ट द्वारा निर्देशित' में पढ़ रहा हूं और कोको को भी शाब्दिक रूप से इसे लागू करने की कोशिश कर रहा हूं।
एक और अद्यतन:
तो मैं अब तक सलाह पढ़ने किया गया है, से जुड़ा हुआ विभिन्न स्थानों की जाँच की और जबकि अभी भी पुस्तक को संदर्भित कुछ को लागू करने शुरू कर दिया। मुझे लगता है कि मैं वास्तव में क्या प्राप्त करने की कोशिश कर रहा हूं वह है टेस्ट- संचालित - विकास भाग। कहा गया पुस्तक में सबसे ज्यादा क्या खड़ा था, यह था कि उन्होंने वर्णन किया कि वे स्वीकृति परीक्षणों के साथ पहले उपयोगकर्ता परिप्रेक्ष्य से क्या करना चाहते थे।
मुझे एहसास है कि जैसे ही मैं विधियों को लिखना शुरू करता हूं, ठोस यूनिट परीक्षण आवश्यक होगा, लेकिन मैं कुछ यूआई का उपयोग करके पहले कुछ उच्च स्तरीय स्वीकृति परीक्षण लिखना चाहता था। मैंने इसे पूरा करने में मेरी सहायता के लिए GHAsyncTestCase विचारों के कुछ समान तरीकों का उपयोग करके अपना स्वयं का एप्लिकेशन "ड्राइवर" वर्ग लिखना शुरू कर दिया है। क्या यह सही/उपयोगी/आवश्यक ध्वनि है?
मैं वास्तव में अब तक सभी टिप्पणियों की सराहना करता हूं और उन्होंने निश्चित रूप से मुझे अपने सिर में काम करने में मदद की है जो मैं करने की कोशिश कर रहा हूं और परीक्षण के विभिन्न क्षेत्रों में क्या हैं। मैं जल्द ही इस सवाल को पूरा कर दूंगा, क्योंकि यह बड़ा हो रहा है, इसलिए किसी भी अंतिम सलाह का स्वागत है!
ग्रेट पहला सवाल! – logancautrell