RSpec-এ বিভিন্ন ম্যাচার ব্যবহার করা হয়, যা কোডের আচরণ পরীক্ষা করতে সহায়ক। নিচে কিছু সাধারণ ম্যাচারের ব্যাখ্যা দেওয়া হলো:
১. eq
eq ম্যাচারটি দুইটি মানের সমতা পরীক্ষা করতে ব্যবহৃত হয়। এটি == ব্যবহার করে মানের সমতা চেক করে।
উদাহরণ:
expect(5).to eq(5) # পাস হবে কারণ ৫ সমান ৫
expect(5).to eq(3) # ফেইল হবে কারণ ৫ সমান ৩ নয়২. be_truthy
be_truthy ম্যাচারটি পরীক্ষা করে যে কোনো মান সত্যি (truthy) কি না। রুবিতে, false এবং nil ছাড়া সবকিছুই সত্যি। তাই, এই ম্যাচারটি false বা nil না হলে পাস হবে।
উদাহরণ:
expect(true).to be_truthy # পাস হবে কারণ true সত্যি
expect(1).to be_truthy # পাস হবে কারণ ১ সত্যি
expect(nil).to be_truthy # ফেইল হবে কারণ nil সত্যি নয়৩. be_falsey
be_falsey ম্যাচারটি পরীক্ষা করে যে কোনো মান মিথ্যা (falsey) কি না। রুবিতে, false এবং nil ছাড়া সবকিছুই মিথ্যা নয়। তাই, এই ম্যাচারটি false বা nil হলে পাস হবে।
উদাহরণ:
expect(false).to be_falsey # পাস হবে কারণ false মিথ্যা
expect(nil).to be_falsey # পাস হবে কারণ nil মিথ্যা
expect(true).to be_falsey # ফেইল হবে কারণ true মিথ্যা নয়৪. include
include ম্যাচারটি পরীক্ষা করে যে একটি কোলেকশন (যেমন অ্যারে বা স্ট্রিং) নির্দিষ্ট কোনো মান বা উপাদান অন্তর্ভুক্ত করে কি না।
উদাহরণ (অ্যারে):
expect([1, 2, 3]).to include(2) # পাস হবে কারণ ২ অ্যারেতে অন্তর্ভুক্ত
expect([1, 2, 3]).to include(4) # ফেইল হবে কারণ ৪ অ্যারেতে নেইউদাহরণ (স্ট্রিং):
expect("Hello world").to include("Hello") # পাস হবে কারণ স্ট্রিংটি "Hello" অন্তর্ভুক্ত করে
expect("Hello world").to include("Ruby") # ফেইল হবে কারণ স্ট্রিংটি "Ruby" অন্তর্ভুক্ত করে না৫. match
match ম্যাচারটি একটি স্ট্রিংকে একটি রেগুলার এক্সপ্রেশন (regex) প্যাটার্নের সাথে মিলিয়ে পরীক্ষা করে।
উদাহরণ:
expect("hello").to match(/^h/) # পাস হবে কারণ "hello" শব্দটি 'h' দিয়ে শুরু
expect("hello").to match(/lo$/) # পাস হবে কারণ "hello" শব্দটি 'lo' দিয়ে শেষ
expect("hello").to match(/^a/) # ফেইল হবে কারণ "hello" শব্দটি 'a' দিয়ে শুরু নাসারাংশ
eq: দুইটি মানের সমতা পরীক্ষা করে (==ব্যবহার করে)।be_truthy: মানটি সত্যি কি না পরীক্ষা করে (যেখানেfalseএবংnilবাদে সব কিছু সত্যি)।be_falsey: মানটি মিথ্যা কি না পরীক্ষা করে (falseঅথবাnilমিথ্যা)।include: কোনো কোলেকশনে একটি নির্দিষ্ট মান বা উপাদান অন্তর্ভুক্ত আছে কিনা তা পরীক্ষা করে।match: একটি স্ট্রিং একটি রেগুলার এক্সপ্রেশন প্যাটার্নের সাথে মিলছে কিনা পরীক্ষা করে।
এই ম্যাচারগুলি RSpec-কে আরও শক্তিশালী এবং ব্যবহারযোগ্য করে তোলে, এবং কোডের পরীক্ষা করা সহজ ও পরিষ্কার করে।
Read more