Pharo ট্র্যাকে টেস্টিং

Exercism-এ আপনার Pharo অনুশীলনীগুলো কীভাবে টেস্ট করবেন, তা শিখুন


একেবারে মৌলিক পর্যায়ে Exercism মূলত টেস্ট আর টেস্টিং নিয়েই, কারণ এটিই আপনার কোডকে এগিয়ে নিয়ে যায় আর একটি অনুশীলনী কখন সম্পূর্ণ হলো তা জানিয়ে দেয়।

তাৎক্ষণিক প্রতিক্রিয়া

Pharo-তে টেস্ট নিয়ে কাজ করার এবং ধাপে ধাপে টেস্ট করার দুর্দান্ত সুবিধা আছে! কোনো টেস্ট কেস ক্লাস বা মেথডের পাশে থাকা অর্বে ক্লিক করে আপনি সেটির যেকোনো টেস্ট চালাতে পারেন।

ব্রাউজারে টেস্টের অর্ব

টেস্টের অর্বগুলো সর্বশেষ টেস্ট রানের ফলাফল অনুযায়ী রঙিন হয়:

  • পাস হলে সবুজ
  • অ্যাসারশন ব্যর্থ হলে হলুদ
  • রানটাইম এরর বা এক্সেপশন হলে লাল

ক্রমানুসারে সাজানো টেস্ট

Exercism-এর অনুশীলনীগুলোর টেস্ট ইচ্ছাকৃতভাবেই নম্বর দেওয়া, যাতে চালনার একটি নির্দিষ্ট ক্রম থাকে (যেমন test01_verifySomeProperty, test02_verifyAnotherProperty ইত্যাদি)।

কোনো অনুশীলনীতে কাজ করার সময় প্রথম টেস্টের অর্বে ক্লিক করা, ব্যর্থতাটি বোঝা এবং এটি পাস করাতে কী দরকার তা বোঝা, তারপর সেটি কাজ করাতে আপনার সমাধানে কোড যোগ করার পরামর্শ দেওয়া হয়। Pharo-তে এই পরিবর্তনগুলো ডিবাগারের ভেতরেই করা খুব স্বাভাবিক, যেখানে কোড এডিটরের পাশাপাশি সব ভ্যারিয়েবল ও প্যারামিটারের একটি ভিউ থাকে, যা সমস্যাটি বুঝতে আপনাকে সাহায্য করে।

দ্রষ্টব্য: টেস্টের নামের আগে ক্রম বোঝানোর প্রিফিক্স বসানো কোনো সাধারণ চর্চা নয়, আর নিজের প্রজেক্টের টেস্ট লেখার সময় আপনি এটি করবেন না।

ভাঙা অবস্থাতেও এটি চলতে পারে

Pharo ভাঙা কোড নিয়েও নির্দ্বিধায় চলে, আর কোনো এরর (সিনট্যাক্স এরর, খারাপ মান, বা এমনকি অনুপস্থিত কোনো ক্লাস বা মেথড) ঘটলেই ডিবাগার সহজে আবার খুলে যায়। এই কৌশলটিই টেস্ট ড্রাইভেন ডেভেলপমেন্টের প্রধান অনুপ্রেরণা ছিল, আর যেকোনো অনুশীলনীর প্রথম টেস্ট চালিয়ে দেখলে আপনি এই পদ্ধতির স্বাদ পাবেন। আপনার সমাধান ক্লাসটি খুঁজে পাওয়া যাচ্ছে না (কারণ আপনি এখনো কিছু লেখেননি) তা ডিবাগার সঙ্গে সঙ্গে দেখিয়ে দেবে। সুবিধাজনকভাবে, একটি "Create" বাটন আছে যা অনুপস্থিত ক্লাসটি যোগ করতে সাহায্য করে এবং সেটি শেষ হওয়া পর্যন্ত বা আরেকটি এরর আসা পর্যন্ত চালিয়ে যেতে দেয়।

ডিবাগারে একটি ক্লাস তৈরি করা

আপনার প্রথম টেস্টে আপনি এরপরই দ্বিতীয় একটি এরর পান, কারণ আপনি এখনো কোনো মেথড লেখেননি। আবারও, ডিবাগারের "Create" বাটন আপনাকে একটি মেথড ডিফাইন করে চালিয়ে যেতে দেয়। এই পর্যায়ে আপনি স্ট্যাক ট্রেসের আরও নিচে ক্লিক করে ব্যর্থ টেস্টের চাহিদাগুলো দেখতে পারেন এবং সেটি পাস করাতে নিজের নতুন মেথড বদলে নিতে পারেন।

ডিবাগারকে ভালোবাসুন

আপনার ডেভেলপমেন্ট চক্রের পরের দিকে স্ট্যাকের আরও পেছনে ক্লিক করে "Restart" বাটন দিয়ে আগের কোনো বিন্দু থেকে প্রোগ্রামের চালনা আবার শুরু করাও আপনার কাজে লাগতে পারে, যাতে এরপর আপনি প্রোগ্রাম ধাপে ধাপে চালিয়ে দেখতে পারেন কী হচ্ছে। আপনার প্রোগ্রাম কেন কাজ করছে না তা বোঝার একটি গুরুত্বপূর্ণ ও দরকারি উপায় এটি।

ডিবাগারে ভ্যারিয়েবল দেখা ছাড়াও, আপনি যেকোনো স্টেটমেন্ট হাইলাইট করে inspect/print-এ ক্লিক করে সেটি মূল্যায়নের ফলাফল দেখতে পারেন। কোনো মেথডের ফলাফল টেস্ট করার সময় বা কোনো অবজেক্টের ভেতরের অবস্থা পরীক্ষা করার সময় এটি কাজে লাগে।

একটি স্টেটমেন্ট ইনস্পেক্ট করা

ভুলে যাবেন না যে ডিবাগারে সরাসরি চলমান কোডেও পরিবর্তন আনতে পারেন, আর একটি পরিবর্তন সেভ করলে যে মেথডটি সবেমাত্র সেভ করা হয়েছে সেটিতেই চালনা আবার শুরু হয়। এতে আপনি "মুহূর্তটিতেই" থেকে পরিবর্তন নিয়ে পরীক্ষা করতে আর তাদের ফলাফল দেখতে পারেন।

সংক্ষেপে, Pharo-তে ডিবাগার ব্যবহার করতে ভয় পাবেন না; আমরা এটিকে সমস্যা বোঝার ও নিয়ে পরীক্ষা করার একটি মূল্যবান হাতিয়ার হিসেবে দেখি।

বড় টেস্ট গ্রুপ ও অটোমেশন

যদি কখনো বড় গ্রুপের টেস্ট চালানোর দরকার পড়ে, তাহলে Package মেনু থেকেও চালাতে পারেন, আর Test Runner টুলও ব্যবহার করতে পারেন (World মেনু থেকে, অথবা <meta> + OU টাইপ করে)।

আপনি প্লেগ্রাউন্ড থেকে প্রোগ্রামভিত্তিকও টেস্ট চালাতে পারেন, print evaluate করে:

AllExercismTests suite run.

টেস্টের ভেতরের কার্যপ্রণালী সম্পর্কে আরও জানতে চাইলে আপনি SUnit সম্পর্কে পড়তে পারেন বা TestCase হায়ারার্কির কোড ঘেঁটে দেখতে পারেন।

আপনি কি জানেন: TDD তৈরি হয়েছিল Smalltalk-এ, SUnit টেস্ট লাইব্রেরি চালু করার মধ্য দিয়ে