मैं आईओएस ऐप में अपने व्यू कंट्रोलर (UIViewController subclasses) का परीक्षण कैसे कर सकता हूं?मैं आईओएस दृश्य नियंत्रकों का परीक्षण कैसे करूं?
मैं पिछले कुछ दिनों से इस विषय को बड़े पैमाने पर गुगल रहा हूं लेकिन मुझे अभी भी यह समझ नहीं आ रहा है कि ऐसा करने का सही तरीका क्या है।
ऐसा लगता है वहाँ इकाई परीक्षण दृश्य नियंत्रक तर्क के कम से कम तीन तरीके हैं कि:
निजी कार्यों और IBOutlets कि आप इकाई परीक्षण (उनमें हेडर फाइल में घोषित) करना चाहते बताएं।
यूनिट परीक्षणों से निजी कार्यों और आईबीऑटलेट तक पहुंचने के लिए
Tests
जैसी श्रेणी का उपयोग करें।शीर्षक का खुलासा न करें, शीर्षक या अन्य सार्वजनिक संपत्ति द्वारा बटन और अन्य विचारों को ढूंढें और सार्वजनिक UIView विधियों के माध्यम से उपयोगकर्ता इंटरैक्शन अनुकरण करें (उदाहरण के लिए उपयोगकर्ता को एक बटन टैप करने का अनुकरण करें); फिर दृश्य स्थिति का निरीक्षण करें।
मुझे इस पर बहुत से स्रोत नहीं मिला, लेकिन objc.io पर एक उदाहरण है।
अब, ईमानदार होना, मैं नहीं वास्तव में पहले दो तरह क्योंकि जहाँ तक मैं समझता हूँ कि इकाई परीक्षण वस्तु की आंतरिक (यानी निजी विधि) का परीक्षण करने नहीं जा सकते, और उनके लिए सार्वजनिक घोषणा के केवल परीक्षणों के लिए सबसे अच्छा अभ्यास की तरह प्रतीत नहीं होता है। मैं आमतौर पर कार्यान्वयन के अंदर IBActions और IBOutlets रखता हूं लेकिन अब मुझे अचानक सब कुछ सार्वजनिक करना है क्योंकि मैं परीक्षण जोड़ रहा हूं ...
मुझे लगता है कि एक और विकल्प हो सकता है: जितना तर्क मैं अपने विचार से कर सकता हूं नियंत्रकों को स्वतंत्र घटकों में और इसके बजाय परीक्षण करें (नियंत्रकों को अनचाहे या अधिकतर अनचाहे छोड़कर)। यह एक अच्छा विचार प्रतीत होता है लेकिन मुझे बहुत से रिफैक्टरिंग करना होगा (मैं वर्तमान में एक परियोजना के लिए यूनिट परीक्षण जोड़ रहा हूं जिसे परीक्षण में ध्यान में नहीं रखा गया था)।
तो मैं सोच रहा था, दृश्य नियंत्रकों का परीक्षण करने का सबसे अच्छा तरीका क्या है?
श्रेणियों के माध्यम से आपको बटन और आईबीएक्शन का परीक्षण कैसे करना चाहिए? परीक्षण फ़ाइल में श्रेणी घोषित करें, फिर फ़ंक्शन, फिर इसे कॉल करें? फिर मैं सत्यापित कैसे करूं कि यूआई बदल गया है? – Minimi
आपने आईबीएक्शन को श्रेणी में रखा ताकि आप उन्हें परीक्षण में कॉल कर सकें। यूआई को सत्यापित करने के लिए, आप या तो दृश्यों के फ्रेम की जांच कर सकते हैं, या स्क्रीनशॉट परीक्षण उपकरण का उपयोग कर सकते हैं जैसे https://github.com/facebook/ios-snapshot-test-case –
क्या आईबीएक्शन का परीक्षण करने का कोई बेहतर तरीका है? मैं केवल परीक्षण मामलों के लिए अपने मॉडल में कोड जोड़ना नहीं चाहता, भले ही यह केवल एक श्रेणी है जो परीक्षण लक्ष्य में शामिल है। क्या मुझे यूनिट टेस्ट IBActions की कोशिश भी करनी चाहिए? क्या मुझे इसके बजाय यूआई परीक्षण का उपयोग करना चाहिए? – Minimi