RSpec-এ describe এবং context ব্লক ব্যবহার করা হয় কোডের বিভিন্ন ইউনিট বা আচরণ পরীক্ষা করার জন্য। যখন আপনি কোডের ভিন্ন ভিন্ন অংশের জন্য আলাদা আলাদা টেস্ট লিখেন, তখন describe এবং context ব্লকগুলোকে নেস্ট (অর্থাৎ, একটির ভেতরে আরেকটি) করে ব্যবহার করতে পারেন। এর মাধ্যমে টেস্টের কাঠামো আরও স্পষ্ট, সংগঠিত এবং পাঠযোগ্য হয়।
১. describe ব্লক
describe ব্লক সাধারণত একটি কোড ইউনিট (যেমন, মেথড, ক্লাস বা ফিচার) পরীক্ষা করার জন্য ব্যবহৃত হয়। এটি কোডের প্রধান আচরণ বর্ণনা করতে ব্যবহৃত হয়।
উদাহরণ:
describe "Calculator" do
it "যত বেশি সংখ্যার যোগফল সঠিকভাবে বের করে" do
expect(2 + 3).to eq(5)
end
end২. context ব্লক
context ব্লক সাধারণত কোডের বিভিন্ন পরিস্থিতি বা শর্ত বর্ণনা করতে ব্যবহৃত হয়। এটি describe ব্লকের মতোই ব্যবহার করা হয়, তবে এর লক্ষ্য হলো পরীক্ষার শর্ত বা কন্ডিশন ব্যাখ্যা করা।
উদাহরণ:
context "যখন দুটি সংখ্যা ইতিবাচক হয়" do
it "যোগফল সঠিকভাবে বের করবে" do
expect(2 + 3).to eq(5)
end
end৩. Nested describe এবং context ব্লক
describe এবং context ব্লক একে অপরের মধ্যে নেস্ট (ভিতরে ভিতরে) করা যেতে পারে, যাতে কোডের বিভিন্ন স্তরের পরীক্ষা সহজে নির্ধারণ করা যায়। এটি পরীক্ষার পরিস্থিতি এবং আচরণগুলি আরও স্পষ্টভাবে বর্ণনা করতে সহায়ক।
উদাহরণ: Nested describe এবং context ব্লক
describe "Calculator" do
describe "#add" 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
describe "#subtract" do
context "যখন দুটি সংখ্যা ইতিবাচক হয়" do
it "বিয়োগফল সঠিকভাবে বের করবে" do
expect(5 - 3).to eq(2)
end
end
context "যখন একটি সংখ্যা নেতিবাচক হয়" do
it "বিয়োগফল সঠিকভাবে বের করবে" do
expect(2 - (-3)).to eq(5)
end
end
end
endএখানে, describe ব্লকটি প্রধান ফিচার বা মেথডকে চিহ্নিত করে, এবং context ব্লকটি আলাদা আলাদা পরিস্থিতি বা শর্ত বর্ণনা করছে, যেমন দুটি সংখ্যা ইতিবাচক বা নেতিবাচক হওয়ার পরিস্থিতি।
৪. যখন Nested describe এবং context ব্লক ব্যবহার করবেন
- ভিন্ন ভিন্ন শর্ত পরীক্ষা করতে: যখন একটি ফিচারের বা মেথডের বিভিন্ন শর্তের অধীনে পরীক্ষা করা প্রয়োজন।
- টেস্টের কাঠামো পরিষ্কার করতে: টেস্টের বিভিন্ন অংশে শর্ত বা পরিস্থিতি বিভাজন করতে সহায়ক।
- কোডের পাঠযোগ্যতা বৃদ্ধি করতে: পরীক্ষার কন্ডিশন স্পষ্টভাবে চিহ্নিত করতে এটি সাহায্য করে।
সারাংশ
describe এবং context ব্লক RSpec-এ কোডের বিভিন্ন ইউনিট এবং শর্ত পরীক্ষা করতে ব্যবহৃত হয়। যখন আপনি কোডের বিভিন্ন শর্ত বা পরিস্থিতি যাচাই করতে চান, তখন nested describe এবং context ব্লক ব্যবহার করতে পারেন। এটি টেস্টের কাঠামো আরও সংগঠিত, পরিষ্কার এবং পাঠযোগ্য করে তোলে, যা ডেভেলপারদের জন্য কোডের কার্যকারিতা পরীক্ষা করা সহজ করে তোলে।
Read more