RSpec এ Shared Examples হলো একটি শক্তিশালী ফিচার, যা টেস্ট কোডের পুনরাবৃত্তি কমাতে সাহায্য করে। এটি আপনাকে একাধিক জায়গায় একই ধরনের টেস্ট শেয়ার বা পুনঃব্যবহার করার সুযোগ দেয়। এর মাধ্যমে আপনি একই লজিক বা আচরণের জন্য একবার টেস্ট লিখে তা বিভিন্ন জায়গায় ব্যবহার করতে পারেন, ফলে কোডের গঠন পরিষ্কার এবং রক্ষণাবেক্ষণ সহজ হয়।
Shared Examples এর ধারণা
Shared Examples RSpec-এ একটি কৌশল, যা বিশেষভাবে ডুপ্লিকেট টেস্ট কোড থেকে মুক্তি দিতে ব্যবহৃত হয়। যখন একই ধরনের টেস্ট একাধিক ক্লাস বা মডিউলের জন্য প্রয়োজন হয়, তখন shared examples ব্যবহার করা হয়। এটি একটি টেস্টের নির্দিষ্ট আচরণ বা বৈশিষ্ট্য নির্ধারণ করে এবং পরে এটি একাধিক জায়গায় ব্যবহার করা যায়।
উদাহরণ:
ধরা যাক, আপনার দুটি ক্লাস আছে, Car এবং Truck, যাদের মধ্যে কিছু সাধারণ আচরণ রয়েছে যেমন start এবং stop মেথড। আপনাকে দুটি ক্লাসের জন্য একই টেস্ট লেখার পরিবর্তে একটি শেয়ারড এক্সাম্পল তৈরি করা যাবে যা উভয় ক্লাসেই ব্যবহার করা যাবে।
Shared Examples ব্যবহার করার উপায়
Shared Examples তৈরি করা:
একটি শেয়ারড এক্সাম্পল তৈরি করতেshared_examplesব্লক ব্যবহার করা হয়। এর মধ্যে টেস্টের লজিক রাখা হয়।shared_examples "a vehicle" do it "should start" do expect(subject.start).to eq("Started") end it "should stop" do expect(subject.stop).to eq("Stopped") end endShared Examples ব্যবহার করা:
তারপর, আপনিit_behaves_likeবাit_should_behave_likeব্যবহার করে এই শেয়ারড এক্সাম্পলটি বিভিন্ন ক্লাসে ব্যবহার করতে পারেন।describe Car do subject { Car.new } it_behaves_like "a vehicle" end describe Truck do subject { Truck.new } it_behaves_like "a vehicle" end
এখানে, Car এবং Truck উভয়েই "a vehicle" শেয়ারড এক্সাম্পলটি ব্যবহার করছে। অর্থাৎ, উভয় ক্লাসের জন্য start এবং stop মেথডের জন্য একই টেস্ট রন্ন করবে।
Shared Examples এর প্রয়োজনীয়তা
- কোড পুনঃব্যবহার: যদি আপনি একাধিক ক্লাস বা মডিউলের জন্য এক ধরনের টেস্ট লিখতে চান, তবে Shared Examples ব্যবহারের মাধ্যমে একই টেস্ট একাধিক স্থানে পুনঃব্যবহার করা সহজ হয়। এটি ডুপ্লিকেট কোড থেকে মুক্তি দেয় এবং কোডের গঠন পরিষ্কার রাখে।
- রক্ষণাবেক্ষণ সহজ করা: যখন আপনার কোডে পরিবর্তন বা আপডেট করার প্রয়োজন হয়, তখন একবার আপডেট করলে, শেয়ারড এক্সাম্পল ব্যবহার করা টেস্ট কোডের পরিবর্তন সবার কাছে পৌঁছাতে সহজ করে দেয়।
- টেস্টের পুনঃব্যবহারযোগ্যতা: শেয়ারড এক্সাম্পল টেস্ট কোডের পুনঃব্যবহারযোগ্যতা বাড়ায়। আপনার যদি একাধিক বৈশিষ্ট্যের জন্য একই আচরণ পরীক্ষা করতে হয়, তবে আপনি একটি শেয়ারড এক্সাম্পল তৈরি করে সেটি বিভিন্ন পরিস্থিতিতে ব্যবহার করতে পারেন।
- কমপ্লেক্স সিস্টেমে সাদৃশ্য বজায় রাখা: যখন একাধিক ক্লাস বা মডিউল বা উপাদান একই আচরণ শেয়ার করে, তখন শেয়ারড এক্সাম্পল তাদের মধ্যে সাদৃশ্য বজায় রাখতে সহায়ক। এতে কোডের গুণগত মান এবং কোড কভারেজ বৃদ্ধি পায়।
সারাংশ
Shared Examples RSpec-এ এমন একটি ফিচার যা আপনাকে কোডের পুনঃব্যবহারযোগ্যতা বাড়াতে সাহায্য করে। এর মাধ্যমে একই ধরনের টেস্ট কোড একাধিক জায়গায় ব্যবহার করা যায়, ফলে কোডের গঠন পরিষ্কার, রক্ষণাবেক্ষণ সহজ এবং টেস্টের কার্যকারিতা বৃদ্ধি পায়। এটি বিশেষভাবে তখন ব্যবহার করা হয় যখন একাধিক ক্লাস বা মডিউলের মধ্যে একই ধরনের আচরণ বা বৈশিষ্ট্য পরীক্ষার প্রয়োজন হয়।
Read more