ios - इकाई परीक्षण को ठीक नहीं करने के लक्ष्य को परीक्षण करने के लिए स्विफ्ट फ़ाइलों को जोड़ना




unit-testing swift (2)

बहुत सिरदर्द के बाद और इसे बैक बर्नर पर डालने के बाद, मैंने पाया कि मुख्य समस्या तब थी जब परीक्षण लक्ष्य सदस्यता में फाइलें जोड़ती थीं, उद्देश्य-सी कक्षाएं अभी भी शिकायत करती हैं। मैंने सोचा कि यह स्विफ्ट यूनिट परीक्षणों के नए तरीके से पुरानी संगतता मुद्दा था, लेकिन समाधान था कि मेरा परीक्षण लक्ष्य नहीं जानता था कि एक ब्रिजिंग हेडर था । इस प्रकार, मैंने अपने परीक्षण लक्ष्य की बिल्ड सेटिंग्स में इसका संदर्भ जोड़ा, जैसे:

यह अब सरल और स्पष्ट प्रतीत होता है, लेकिन त्रुटियां अनुपयोगी थीं। स्विफ्ट यूनिट परीक्षणों के लिए मैंने देखा कोई अन्य समाधान यह सुझाव नहीं दे सकता कि यह एक मुद्दा हो सकता है, लेकिन अब मुझे पता है।

Tl, डॉ

स्विफ्ट में काम करने के लिए यूनिट परीक्षणों के लिए, परीक्षण लक्ष्य को पता होना चाहिए कि ऐप लक्ष्य क्या जानता है, इसलिए अपने परीक्षण लक्ष्य में भी अपने ब्रिजिंग हेडर का संदर्भ जोड़ें (यदि लागू हो)।

मैंने बहुत सारे ब्लॉग देखे हैं और एक्सकोड 6.0.1 (या उस मामले के लिए 6.1) में काम करने के लिए अपने स्विफ्ट यूनिट परीक्षणों को पाने के लिए कई चीजों की कोशिश की है। मैं अपने ऐप के लक्ष्य में कक्षाओं तक पहुंचने की कोशिश कर रहा हूं इसलिए मैंने यह लाइन लिखी:

var vc: LoginViewController!

बेशक, मुझे "अविकसित प्रकार का उपयोग 'लॉग इन व्यू कंट्रोलर' 'त्रुटि मिलती है।

मैं फिर अपने परीक्षण लक्ष्य में LoginViewController जोड़ने का LoginViewController करता हूं, लेकिन फिर मुझे अपने प्रोजेक्ट में अन्य कक्षाओं पर "अनसुलझा पहचानकर्ता का उपयोग" त्रुटियां मिलती हैं। इसलिए मैं उन वर्गों को अपने परीक्षण लक्ष्य में जोड़ने का प्रयास करता हूं, लेकिन मैं नीचे दिए गए स्क्रीनशॉट जैसी त्रुटियों के एक असीमित स्रोत के साथ समाप्त होता हूं:

मेरे सभी वर्गों को सार्वजनिक रूप से घोषित करना, अन्य त्रुटियों का कारण बनता है और खराब अभ्यास की तरह लगता है। क्या स्विफ्ट प्रोजेक्ट में यूनिट परीक्षण शामिल करने के लिए वैसे भी है जो कई ढांचे और कक्षाओं पर निर्भर करता है? मैं बस इस article में कोड की तरह लगभग कुछ शुरू करना चाहता हूं।


मैं एक्सकोड 6.1 का उपयोग कर रहा हूँ

आपको अपनी त्वरित फ़ाइल को परीक्षण लक्ष्य की target membership में जोड़ने की आवश्यकता है





xctest