Pharo ट्रैक पर टेस्टिंग

Exercism पर अपने Pharo अभ्यासों की जाँच करना सीखिए।


सबसे बुनियादी स्तर पर Exercism टेस्ट और टेस्टिंग पर ही टिका है, क्योंकि यही आपके कोड को आगे बढ़ाता है और बताता है कि कोई अभ्यास कब पूरा हुआ।

तुरंत प्रतिक्रिया

Pharo में टेस्ट के साथ काम करने और थोड़ा-थोड़ा करके टेस्ट करने की बहुत अच्छी सुविधा है! किसी अभ्यास का कोई भी टेस्ट चलाने के लिए आप टेस्ट केस क्लास या मेथड के बगल वाले ऑर्ब पर क्लिक कीजिए।

ब्राउज़र में टेस्ट ऑर्ब

पिछली बार टेस्ट चलने के परिणाम के अनुसार टेस्ट ऑर्ब का रंग तय होता है:

  • पास होने पर हरा
  • एसर्शन फेल होने पर पीला
  • रनटाइम एरर या एक्सेप्शन आने पर लाल

क्रमबद्ध टेस्ट

Exercism के अभ्यासों में टेस्ट को जानबूझकर क्रमांक दिए गए हैं, ताकि उनके चलने का क्रम तय रहे (जैसे test01_verifySomeProperty, test02_verifyAnotherProperty इत्यादि)।

किसी अभ्यास पर काम करते समय सलाह यह है कि आप पहले टेस्ट के ऑर्ब पर क्लिक कीजिए। यह समझिए कि टेस्ट क्यों फेल हुआ और उसे पास करने के लिए क्या करना है। इसके बाद अपने हल में कोड जोड़कर उसे पास कराइए। Pharo में ये बदलाव डीबगर में करना बिलकुल सामान्य है। डीबगर में आपको कोड एडिटर के साथ-साथ सभी वेरिएबल और पैरामीटर भी दिखते हैं, जिनसे समस्या समझने में मदद मिलती है।

ध्यान दीजिए: टेस्ट के नाम के आगे क्रमांक लगाना आम प्रथा नहीं है, और अपने प्रोजेक्ट के लिए टेस्ट लिखते समय आपको ऐसा बिलकुल नहीं करना चाहिए।

टूटा कोड होने पर भी चलता है

Pharo टूटे हुए कोड के साथ भी खुशी-खुशी चलता है, और जब कोई एरर आती है तो डीबगर बस फिर से खुल जाता है (चाहे वह सिंटैक्स एरर हो, गलत वैल्यू हो, या कोई क्लास या मेथड ही न मिले)। यह तकनीक टेस्ट-ड्रिवन डेवलपमेंट की मुख्य प्रेरणा रही, और किसी भी अभ्यास का पहला टेस्ट चलाकर आप इस तरीके की एक झलक पा सकते हैं। डीबगर तुरंत बता देगा कि आपके हल की क्लास नहीं मिली (क्योंकि आपने अभी कुछ लिखा ही नहीं है)। अच्छी बात यह है कि वहाँ एक "Create" बटन होता है, जिससे आप छूटी हुई क्लास जोड़कर कोड चलाते रह सकते हैं, जब तक वह पूरा न हो जाए या फिर कोई और एरर न आ जाए।

डीबगर में क्लास बनाना

अपने पहले टेस्ट के साथ ही आपकी मुलाकात दूसरी एरर से होती है, क्योंकि आपने अभी कोई मेथड लिखा ही नहीं है। यहाँ भी डीबगर का "Create" बटन आपको मेथड बनाने और कोड चलाते रहने देता है। अब आप स्टैक ट्रेस में और नीचे क्लिक करके फेल हो रहे टेस्ट की ज़रूरतें देख सकते हैं, और अपने नए मेथड को बदलकर उसे पास करा सकते हैं।

डीबगर को अपनाइए

बाद में आपको यह भी काम का लग सकता है कि स्टैक में और पीछे क्लिक कीजिए और "Restart" बटन दबाकर प्रोग्राम को किसी पहले बिंदु से दोबारा चलाइए। इससे आप प्रोग्राम को कदम-दर-कदम चलाकर देख सकते हैं कि असल में हो क्या रहा है। आपका प्रोग्राम क्यों नहीं चल रहा, यह जानने का यह एक ज़रूरी और उपयोगी तरीका है।

डीबगर में वेरिएबल देखने के अलावा, आप किसी भी स्टेटमेंट को हाइलाइट करके inspect/print पर क्लिक कर सकते हैं और देख सकते हैं कि उसे चलाने पर क्या परिणाम आता है। यह तब काम आता है जब आप किसी मेथड के नतीजे जाँच रहे हों, या किसी ऑब्जेक्ट की अंदरूनी स्थिति देखना चाहते हों।

किसी स्टेटमेंट को inspect करना

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

संक्षेप में, Pharo में डीबगर इस्तेमाल करने से डरने की ज़रूरत नहीं है। हम इसे एक बहुत काम का टूल मानते हैं, जो किसी समस्या को समझने और उस पर प्रयोग करने में मदद करता है।

बड़े टेस्ट समूह और ऑटोमेशन

अगर आपको कभी बड़े टेस्ट समूह चलाने पड़ें, तो आप उन्हें Package मेन्यू से भी चला सकते हैं और Test Runner टूल का इस्तेमाल भी कर सकते हैं (यह World मेन्यू से खुलता है, या <meta> + OU दबाइए)।

आप playground से प्रोग्राम के ज़रिए भी टेस्ट चला सकते हैं। इसके लिए print evaluating कीजिए:

AllExercismTests suite run.

अगर आप टेस्ट की अंदरूनी बनावट के बारे में और जानना चाहते हैं, तो SUnit के बारे में पढ़िए या TestCase हाइरार्की का कोड देखिए।

क्या आप जानते हैं: TDD का आविष्कार Smalltalk में SUnit टेस्ट लाइब्रेरी की शुरुआत के ज़रिए हुआ था