Objective-C ट्रैक पर टेस्टिंग

Exercism पर अपने Objective-C अभ्यासों की टेस्टिंग करना सीखिए


Exercism केवल एक टेस्ट फाइल डाउनलोड करेगा। अभ्यास से जुड़ी हेडर फाइल और सोर्स फाइल आपको खुद बनानी पड़ेगी। आपको टेस्ट फाइल, हेडर फाइल (.h) और सोर्स फाइल (.m) के साथ एक Xcode प्रोजेक्ट फाइल बनानी पड़ेगी। इसके अलावा, आप नीचे बताई गई टेस्ट रनर यूटिलिटी भी इस्तेमाल कर सकते हैं।

Xcode में प्रोजेक्ट बनाना

  • Xcode शुरू कीजिए और एक नया प्रोजेक्ट बनाइए।
  • OS X > Application चुनिए और फिर Command Line Tool।
  • Next पर क्लिक कीजिए और प्रोजेक्ट का नाम देते समय ExerciseName इस्तेमाल करना बेहतर रहेगा।
  • Next पर क्लिक कीजिए और प्रोजेक्ट को exercism की अभ्यास डायरेक्टरी में सेव कीजिए।
  • अब प्रोजेक्ट बन चुका है, तो Editor > Add Target पर क्लिक कीजिए।
  • OS X > Test चुनिए और फिर OS X Unit Testing Bundle चुनिए।
  • टारगेट का नाम ExerciseName Tests रखिए।
  • बाएँ पैनल में (जिसे navigator कहते हैं) Project navigator खोलिए, ExerciseName Tests फोल्डर को फैलाइए और ExerciseName_Tests.m फाइल खोलिए।
  • इसकी सामग्री को exercism से मिली टेस्ट फाइल से बदल दीजिए।
  • उस फाइल में "test_suite" के सभी उदाहरणों को "ExerciseName_Tests" से बदल दीजिए।
  • दाएँ पैनल में File Template library पर जाइए (या CTRL+OPTION+CMD+1 दबाइए) और Cocoa Class टेम्पलेट को Project navigator में ExerciseName_Tests फोल्डर में खींचिए।
  • इसका नाम ExerciseName रखिए और इसका टारगेट ExerciseName Tests चुनिए।
  • अब आपकी ExerciseName_Tests डायरेक्टरी में दो नई फाइलें होंगी: ExerciseName.h और ExerciseName.m।
  • Project navigator में अपने प्रोजेक्ट पर क्लिक कीजिए।
  • targets सूची में ExerciseName Tests पर क्लिक कीजिए।
  • एडिटर की navigation में Build Phases चुनिए।
  • जाँच लीजिए कि आपकी दोनों .m फाइलें compile sources सूची में हैं।
  • Test navigator पर जाने के लिए CMD+5 दबाइए।
  • ExerciseName Tests नाम के bundle पर राइट क्लिक कीजिए और Enable ExerciseName_Tests पर क्लिक कीजिए।
  • Test navigator में bundle पर कर्सर ले जाने पर दिखने वाले दाईं ओर इशारा करने वाले त्रिभुज पर क्लिक करके टेस्ट चलाइए, या CMD+U दबाइए।

टेस्ट Xcode के ज़रिए चलाए जाते हैं।

ध्यान दें: अगर आपको यह एरर मिलती है, "No visible @interface for ExerciseName declares the selector ExerciseSelector," तो आपने चरण ठीक से पूरे किए हैं, लेकिन अपनी हेडर या इम्प्लीमेंटेशन फाइल में कुछ लिखा नहीं है। जब आप अपना मेथड .h फाइल में घोषित कर देंगे और .m फाइल में परिभाषित कर देंगे, तो आपके टेस्ट और काम की एरर दिखाएँगे, जो आपको अभ्यास पूरा करने की तरफ ले जाएँगी। ज़्यादा गहरी जानकारी के लिए यह primer on Objective-C Classes पढ़िए।

टेस्ट रनर

प्रोजेक्ट फाइल खुद बनाने की जगह आप ruby में लिखी एक टेस्ट रनर यूटिलिटी, objc, इस्तेमाल कर सकते हैं, जो आपके लिए टेस्ट फाइल, हेडर फाइल और सोर्स फाइल के साथ एक प्रोजेक्ट फाइल बना देगी।

$ gem install objc

टेस्ट इस तरह चलाइए:

$ objc -x ExerciseName

(ध्यान दीजिए -x/--xcodebuild फ्लैग पर, जो बताता है कि xctool के बदले xcodebuild इस्तेमाल करना है। xctool Xcode के नए रिलीज़ों के साथ काम नहीं करता।)

objc यूटिलिटी अभ्यास के नाम का इस्तेमाल करके टेस्ट फाइल ExerciseNameTest.m, हेडर फाइल ExerciseName.h और सोर्स फाइल ExerciseName.m ढूँढती है। इन फाइलों को एक अस्थायी Xcode प्रोजेक्ट में डाला जाता है और फिर उस प्रोजेक्ट के टेस्ट चलाने के लिए xcodebuild इस्तेमाल किया जाता है।

objc की वजह से ये अभ्यास पूरे करने के लिए आपको Xcode खोलने की ज़रूरत कभी नहीं पड़ती, लेकिन कमांड लाइन पर मिलने वाले एरर संदेश और फीडबैक उतने साफ़ नहीं होते जितने Xcode के यूज़र इंटरफ़ेस पर मिलते हैं।