Exercism-এ আপনার Ruby অনুশীলনীগুলো কীভাবে টেস্ট করবেন তা শিখুন
টেস্টগুলো চালাতে হয় এভাবে:
$ ruby hamming_test.rb
কেবল প্রথম টেস্টটি চালানো হবে, বাকি সবগুলো skip মেথড দিয়ে পেন্ডিং করে রাখা হয়েছে। একটি টেস্ট পাস হওয়ার সাথে সাথেই পরের skip মুছে ফেলুন বা কমেন্ট করে দিন।
skip মেথড টেস্ট স্যুটকে একটি টেস্ট না চালানোর নির্দেশ দেয়। এখনো ইমপ্লিমেন্ট করা হয়নি এমন ফাংশনালিটির টেস্ট চালানো এড়াতে এটি সাধারণত ব্যবহার করা হয়, যাতে আপনি এই মুহূর্তে যে অংশ নিয়ে কাজ করছেন সেদিকে মনোযোগ দিতে পারেন।
টেস্ট রান শেষে সারসংক্ষেপে স্কিপ করা টেস্টের সংখ্যা দেখানো হবে। অনুশীলনী শেষ করার আগে সব স্কিপ নিষ্ক্রিয় করে দেওয়া উচিত।
রঙ চাইলে টেস্টগুলো এভাবে চালান:
$ ruby hamming_test.rb -p
টেস্টের নামগুলো দেখতে চাইলে টেস্টগুলো এভাবে চালান:
$ ruby hamming_tests.rb -v
কেবল একটি টেস্ট চালাতে চাইলে, রেগুলার এক্সপ্রেশন স্টাইলের ম্যাচিং দিয়ে একটি টেস্ট বা টেস্টের একটি গ্রুপ নির্দিষ্ট করতে পারেন।
$ ruby hamming_tests.rb -n /empty/
অপশনগুলো একসাথে মিলিয়েও ব্যবহার করতে পারেন।
এখন আপনি কোন একক টেস্ট বা টেস্টের গ্রুপ চালাতে চান তা বেছে নেওয়ার নতুন ক্ষমতা অর্জন করেছেন, তাই হয়তো সব স্কিপ নিষ্ক্রিয় করতে চাইবেন।
Ruby-তে মেথড ওভাররাইড করা যায়, এই সুবিধা নিয়ে যদি এই কোড লাইনটি যোগ করেন;
def skip ; end
Hamming টেস্ট ফাইলে এভাবে
class HammingTest < Minitest::Test
def skip ; end
def test_identical_strands
তাহলে সব স্কিপ আগের মতোই কাজ করবে, তবে আপনার টেস্টগুলো চলতে বাধা দেবে না।
অবশ্যই, সময়ের পরিক্রমায় সব ফাইল সম্পাদনা করা বিরক্তিকর হয়ে উঠতে পারে। তাই আমরা অনুশীলনীগুলো তৈরি করার সময় যা করেছিলাম, সেটাই করতে পারেন... এমন একটি ফাইল বানান যাতে skip-এর ডেফিনিশন থাকে, আর দরকার হলে সেটিকে লাইব্রেরি হিসেবে require করুন।
আমাদের "হেল্পার" জিনিসগুলো রাখার জন্য আমরা একটি lib ফোল্ডার তৈরি করেছিলাম, যা দেখতে এরকম:
require 'minitest/autorun'
# You can use this to disable all skips in the current exercise by issuing the
# following command:
# ruby -I../lib -rdisable_skip <filename_test.rb>
module Minitest
class Test
def skip(_msg='', _bt=caller)
end
end
end
এটি কীভাবে ব্যবহার করবেন তার বর্ণনা ওই ফাইল লিস্টিংয়েই কমেন্ট আকারে দেওয়া আছে, আর ফাইল লিস্টিংটি সম্পূর্ণ অবস্থায় আছে।