RSpec-এ describe এবং context ব্লক দুটি প্রধান টেস্টিং ব্লক যা কোডের একটি নির্দিষ্ট অংশ বা আচরণ সম্পর্কে বর্ণনা দেওয়ার জন্য ব্যবহৃত হয়। যদিও এগুলোর কাজ একই ধরনের, তবুও এগুলোর মধ্যে কিছু পার্থক্য আছে, এবং এগুলো টেস্টের স্পষ্টতা এবং পাঠযোগ্যতা বাড়াতে সহায়ক।
describe ব্লক
describe ব্লক মূলত টেস্টের নামকরণ বা বর্ণনা প্রদান করার জন্য ব্যবহৃত হয়। এটি একটি নির্দিষ্ট ক্লাস, মেথড বা ফিচারের উপর ফোকাস করে। এই ব্লকের ভিতরে আপনি টেস্টের প্রত্যাশিত আচরণ নির্ধারণ করবেন।
ব্যবহার:
describe "Calculator" do
it "দুটি সংখ্যার যোগফল সঠিকভাবে বের করে" do
expect(2 + 3).to eq(5)
end
endএখানে, describe ব্লকটি "Calculator" এর আচরণ পরীক্ষা করছে এবং it ব্লকটি তার একটি নির্দিষ্ট আচরণ (যেমন, যোগফল বের করা) পরীক্ষা করছে।
context ব্লক
context ব্লক একটি শর্তাধীন পরিস্থিতি বা কন্ডিশন বর্ণনা করার জন্য ব্যবহৃত হয়। describe এবং context এর মধ্যে মূল পার্থক্য হলো, context ব্লকটি সাধারণত একটি নির্দিষ্ট শর্ত বা অবস্থা বর্ণনা করতে ব্যবহার করা হয়, যেখানে describe ব্লকটি সাধারণত পরীক্ষার বিষয়বস্তু বর্ণনা করে।
context ব্লক সাধারণত কোডের বিভিন্ন অবস্থা পরীক্ষা করার জন্য ব্যবহৃত হয়। এটি টেস্টকে আরও সংগঠিত এবং স্পষ্ট করে তোলে।
ব্যবহার:
describe "Calculator" do
context "যখন দুটি পজিটিভ সংখ্যা দেয়া হয়" do
it "দুটি সংখ্যার যোগফল সঠিকভাবে বের করে" do
expect(2 + 3).to eq(5)
end
end
context "যখন একটি নেতিবাচক সংখ্যা দেয়া হয়" do
it "যোগফল সঠিকভাবে বের করে" do
expect(-2 + 3).to eq(1)
end
end
endএখানে context ব্লকটি পরীক্ষার শর্ত বা অবস্থার ভিত্তিতে আলাদা আলাদা টেস্ট গোষ্ঠী তৈরি করছে, যেমন পজিটিভ সংখ্যা এবং নেতিবাচক সংখ্যা।
describe এবং context এর মধ্যে পার্থক্য
describeব্লক সাধারণত পরীক্ষার বিষয় বা ফিচার বর্ণনা করে, যেমন একটি ক্লাস, মেথড বা ফিচার।contextব্লক শর্ত বা অবস্থা বর্ণনা করে, যেমন বিভিন্ন ইনপুট, ভিন্ন ব্যবহারকারী অবস্থা, বা বিশেষ পরিস্থিতি।
উদাহরণ:
describe "Weather App" do
context "যখন আবহাওয়া সূর্যের তাপমাত্রা প্রদর্শন করে" do
it "সূচকটি ৩০ ডিগ্রি সেলসিয়াসের বেশি দেখাবে" do
expect(weather.temperature).to be > 30
end
end
context "যখন আবহাওয়া বৃষ্টি দেখায়" do
it "ব্যবহারকারীকে বৃষ্টি উপকরণ পরার পরামর্শ দেবে" do
expect(weather.suggest_umbrella?).to be true
end
end
endএখানে describe ব্লকটি "Weather App" টেস্টের বিষয় বর্ণনা করছে, এবং context ব্লকটি আবহাওয়ার অবস্থা বর্ণনা করছে (যেমন সূর্য বা বৃষ্টি)।
সারাংশ
describeব্লক সাধারণত টেস্টের প্রধান বিষয় বা ইউনিট বর্ণনা করে।contextব্লক পরীক্ষার শর্ত বা অবস্থাকে বর্ণনা করে, যা একই কোডের ভিন্ন ভিন্ন পরিস্থিতি পরীক্ষা করতে সহায়ক।
context ব্লকটি সাধারণত টেস্টের গঠন ও স্পষ্টতা উন্নত করার জন্য ব্যবহৃত হয়, যেখানে describe কোডের মূল বিষয় বর্ণনা করে।
Read more