2017-04-04 10 views
5

मैं एक परीक्षण केस रिकॉर्ड करने की कोशिश कर रहा हूं जिसमें एक NSDocument फ़ाइल बनाता है और सहेजता है (फिर खुलता है + सामग्री को फिर से सत्यापित करता है)। समस्या तब होती है जब मैं अपने परीक्षण मामले को रिकॉर्ड करता हूं, एक बार NSSavePanel लॉन्च होने के बाद, XCTestCase रिकॉर्डिंग बंद हो जाती है। मैंने सहेजे/खुले पैनलों के साथ बातचीत के परीक्षण मामलों के उदाहरणों की खोज करने की कोशिश की है, लेकिन मुझे कोई भाग्य नहीं मिला है।XCTestCase फ़ाइल को सहेजते हैं? (रिकॉर्ड NSSavePanel)?

क्या कोई मुझे किसी भी विवरण के बारे में बता सकता है कि क्या XCTestCases NSSavePanels के साथ भी बातचीत कर सकता है? कोड उदाहरण बेहतर होगा, लेकिन दस्तावेज़ीकरण भी बहुत अच्छा होगा!

उत्तर

-1

हां यह कर सकता है।

XCUIApplication इस्तेमाल

XCUIApplication एक न्यूनतम एपीआई है, लेकिन कुछ तरीकों पर विशेष ध्यान वारंट:

-launch - डिफ़ॉल्ट रूप से, नए XCTestCase टेम्पलेट्स -setup में एक पंक्ति जो एक नई को दर्शाता है शामिल XCUIAplication और इसे लॉन्च करता है। जब -लांच कहा जाता है, तो यह लक्ष्य ऐप के पहले चल रहे उदाहरण को समाप्त कर देगा। इसका मतलब यह है कि डिफ़ॉल्ट रूप से आपके द्वारा जोड़े गए प्रत्येक टेस्ट केस में प्रत्येक टेस्ट विधि से पहले आपके ऐप को फिर से लॉन्च किया जाएगा। आप एकवचन XCUIAplplication के साझा संदर्भ का उपयोग कर इससे बच सकते हैं कि आप केवल एक बार लॉन्च करते हैं, हालांकि समग्र परीक्षण समय से अलग करने के लिए इसका कोई फायदा नहीं होता है।

-launchEnvironment - लॉन्च पर लक्षित ऐप को पारित कस्टम वातावरण चर पर नियंत्रण की अनुमति देता है। इसका उपयोग कस्टम वैरिएबल को सेट करने के लिए किया जा सकता है, आपका ऐप स्वचालित यूआई परीक्षण के लक्ष्य के रूप में चलने पर पहचानने के लिए उपयोग कर सकता है। हालांकि यह उपयोगी हो सकता है, यह समझदारी से इस्तेमाल किया जाना चाहिए। आपके यूआई परीक्षण बहुत उपयोगी नहीं हैं जब तक कि वे आपके उपयोगकर्ता के समान कोड का उपयोग नहीं कर रहे हों।

यूआई रिकॉर्डिंग

Xcode 7 के साथ

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

धीमी गति में ले जाएं - अपने क्लिक और कीबोर्ड प्रेस को बहुत जल्दी या तेजी से उत्तराधिकार में निष्पादित करने के परिणामस्वरूप उनमें से कुछ को एक्सकोड द्वारा छोड़ा जा सकता है।

त्रुटियों की अपेक्षा - रिकॉर्डिंग कुछ मामलों में काम नहीं करेगी। में सहेजें न सहेजें बटन पर क्लिक करने से NSSavePanel एक बच निकले यूनिकोड चरित्र के साथ एक स्ट्रिंग रिकॉर्ड करेगा जो काम नहीं करता है। कई बार, रिकॉर्डिंग एक सामान्य त्रुटि संदेश के साथ नीचे की तरह विफल हो जाएगी। सुझाव? अपने परीक्षण मामलों को 'स्क्रैच से' लिखने के लिए शुरुआती बिंदु के रूप में रिकॉर्डिंग का उपयोग करें।

enter image description here

+0

धन्यवाद, लेकिन यह वास्तव में एक XCTestCase एक प्रणाली NSSavePanel के साथ बातचीत से कोई लेना देना उत्तर नहीं मिलता है? – Kyle

संबंधित मुद्दे