RSpec এ Matchers হলো এমন বিশেষ ফিচার যা একটি মান (value) বা অবজেক্টের সাথে একটি নির্দিষ্ট শর্তের মিল আছে কিনা তা যাচাই করতে ব্যবহৃত হয়। Matchers সাধারণত expect এর সাথে ব্যবহৃত হয়, যা একটি মানের প্রত্যাশিত ফলাফল যাচাই করে।
১. expect
RSpec-এ expect একটি মৌলিক টেস্টিং কনসেপ্ট। এটি একটি নির্দিষ্ট মান বা অবজেক্টের প্রত্যাশিত আউটপুট পরীক্ষা করে। expect সাধারণত একটি টেস্টের শুরুতে ব্যবহার করা হয়, তারপর তার সাথে এক বা একাধিক matcher যুক্ত করা হয়।
উদাহরণ:
expect(5).to eq(5) # এটা পরীক্ষা করবে যে 5 সত্যিই 5 এর সমান কিনা২. eq
eq Matcher ব্যবহার করা হয় মানের সমতা যাচাই করতে। এটি দুটি মানের সমতা পরীক্ষা করে। যদি মান দুটি সমান হয়, তবে টেস্ট পাস করবে।
উদাহরণ:
expect(5 + 3).to eq(8) # এটা পরীক্ষা করবে যে 5 + 3 সমান 8 কিনাএখানে, expect(5 + 3) এর ফলাফল 8 হওয়া উচিত এবং eq(8) দ্বারা এটি যাচাই করা হচ্ছে।
৩. be
be Matcher মূলত বুলিয়ান মান বা অবজেক্টের অবস্থা যাচাই করার জন্য ব্যবহৃত হয়। এটি বিশেষ করে প্রকৃত মান বা অবজেক্টের অবস্থার তুলনা করার জন্য ব্যবহার করা হয়।
beযখনtrueবাfalseএর সাথে ব্যবহার করা হয় তখন এটি বুলিয়ান মানের জন্য সঠিক।- এটি যদি অবজেক্টের তুলনা করতে হয়, তবে এটি পরীক্ষা করে যে নির্দিষ্ট অবজেক্টটি কোনো বিশেষ অবস্থায় রয়েছে কিনা।
উদাহরণ:
expect(true).to be(true) # এটা পরীক্ষা করবে যে মানটি সত্য কিনাএছাড়াও, be ব্যবহার করা হয় একই অবজেক্টের তুলনা করতে:
a = "hello"
b = a
expect(a).to be(b) # এটা পরীক্ষা করবে যে a এবং b একই অবজেক্ট কিনা৪. include
include Matcher ব্যবহার করা হয় কোন অ্যারে, হ্যাশ, বা স্ট্রিং এ নির্দিষ্ট উপাদান উপস্থিত কিনা তা পরীক্ষা করতে। এটি একটি ভ্যালু বা অবজেক্টের মধ্যে একটি নির্দিষ্ট উপাদান অন্তর্ভুক্ত কিনা তা যাচাই করে।
উদাহরণ:
expect([1, 2, 3]).to include(2) # এটা পরীক্ষা করবে যে অ্যারে [1, 2, 3] তে 2 আছে কিনাএছাড়াও, এটি স্ট্রিংগুলির জন্যও ব্যবহার করা যায়:
expect("Hello world").to include("Hello") # এটা পরীক্ষা করবে যে স্ট্রিংয়ে "Hello" উপস্থিত কিনাঅন্যান্য Matchers:
৫. not_to
এটি অপ্রত্যাশিত ফলাফল যাচাই করার জন্য ব্যবহৃত হয়। অর্থাৎ, যদি কোন শর্ত পূর্ণ না হয়, তবে এটি যাচাই করে।
expect(5 + 3).not_to eq(10) # এটা পরীক্ষা করবে যে 5 + 3 সমান 10 নয়৬. be_nil
nil অবস্থা যাচাই করার জন্য ব্যবহৃত হয়।
expect(nil).to be_nil # এটা পরীক্ষা করবে যে মানটি nil কিনাসারাংশ
RSpec এ Matchers খুবই শক্তিশালী টেস্টিং টুল, যা ডেভেলপারদের তাদের কোডের ফলাফল বা আচরণ যাচাই করার জন্য ব্যবহৃত হয়। Matchers যেমন expect, eq, be, এবং include ডেভেলপারদের বিভিন্ন ধরণের যাচাই করার সুবিধা দেয়—যথা মানের সমতা, অবস্থা পরীক্ষা, এবং উপাদান অন্তর্ভুক্তি। RSpec-এর এই Matchers ব্যবহার করে কোডের সঠিকতা নিশ্চিত করা অনেক সহজ এবং পরিষ্কার হয়।
Read more