RSpec এ compound matchers যেমন and, or, এবং not ব্যবহার করা হয় একাধিক প্রত্যাশা (expectations) একসাথে পরীক্ষা করার জন্য। এগুলি আপনাকে একটি একক টেস্ট কেসে আরও জটিল এবং সংক্ষিপ্ত টেস্ট কন্ডিশন লিখতে সাহায্য করে। যখন আপনি একাধিক শর্ত বা শর্তের সমন্বয় পরীক্ষা করতে চান, তখন এই matchers ব্যবহার করা সুবিধাজনক।
১. and Matcher
and matcher দুটি শর্ত পরীক্ষা করে এবং দুইটি শর্তই সত্য হতে হবে। এটি দুটি matcher একসাথে যুক্ত করে এবং প্রত্যেকটি শর্ত পাস করতে হবে।
সিনট্যাক্স:
expect(actual_value).to match_a_condition.and match_another_conditionউদাহরণ:
describe "Testing with `and` matcher" do
it "checks both conditions" do
number = 5
expect(number).to be > 3.and be < 10
end
endএই উদাহরণে:
- প্রথম শর্ত পরীক্ষা করছে যে
number৩ এর চেয়ে বড় কি না। - দ্বিতীয় শর্ত পরীক্ষা করছে যে
number১০ এর চেয়ে ছোট কি না। - দুইটি শর্তই সত্য হতে হবে, তখনই টেস্ট পাস করবে।
২. or Matcher
or matcher দুটি শর্ত পরীক্ষা করে এবং যেকোনো একটি শর্তও সত্য হলে টেস্ট পাস হবে।
সিনট্যাক্স:
expect(actual_value).to match_a_condition.or match_another_conditionউদাহরণ:
describe "Testing with `or` matcher" do
it "checks if either condition is true" do
number = 7
expect(number).to be < 5.or be > 3
end
endএই উদাহরণে:
- প্রথম শর্ত পরীক্ষা করছে যে
number৫ এর চেয়ে ছোট কি না। - দ্বিতীয় শর্ত পরীক্ষা করছে যে
number৩ এর চেয়ে বড় কি না। - যেহেতু দ্বিতীয় শর্ত (এটি
number > 3) সত্য, টেস্টটি পাস হবে।
৩. not Matcher
not matcher একটি শর্তকে নাকচ করে, অর্থাৎ এটি পরীক্ষা করে যে নির্দিষ্ট শর্ত সত্য নয়।
সিনট্যাক্স:
expect(actual_value).to not_to match_a_conditionঅথবা, not_to ব্যবহার করা যেতে পারে:
expect(actual_value).not_to match_a_conditionউদাহরণ:
describe "Testing with `not` matcher" do
it "checks if a condition is not true" do
number = 5
expect(number).not_to be < 3
end
endএই উদাহরণে:
- শর্তটি পরীক্ষা করছে যে
number৩ এর চেয়ে ছোট নয়। - যেহেতু
number৫, এটি ৩ এর চেয়ে ছোট নয়, তাই টেস্টটি পাস হবে।
Compound Matchers এর সমন্বয়
আপনি and, or, এবং not matchers একসাথে ব্যবহার করে আরও জটিল পরীক্ষা করতে পারেন।
উদাহরণ:
describe "Testing compound matchers" do
it "checks multiple conditions" do
number = 7
expect(number).to be > 5.and be < 10.or be > 20
end
endএই উদাহরণে:
- প্রথম অংশ পরীক্ষা করছে যে
number৫ এর চেয়ে বড়। - দ্বিতীয় অংশ পরীক্ষা করছে যে
number১০ এর চেয়ে ছোট। - তৃতীয় অংশ পরীক্ষা করছে যে
number২০ এর চেয়ে বড়। - টেস্টটি পাস হবে কারণ প্রথম দুটি শর্ত (
number > 5এবংnumber < 10) সত্য।
সারাংশ
and: দুটি শর্তের উভয়ই সত্য হতে হবে।or: যেকোনো এক শর্ত সত্য হলে টেস্ট পাস করবে।not: শর্তটি সত্য নয় তা যাচাই করবে।
এই compound matchers ব্যবহার করে আপনি RSpec-এ আরও জটিল এবং অর্থপূর্ণ পরীক্ষা লিখতে পারেন, যা আপনার টেস্টগুলিকে আরও শক্তিশালী এবং পঠনযোগ্য করে তোলে।
Read more