RSpec এবং Minitest রুবিতে দুটি জনপ্রিয় টেস্টিং ফ্রেমওয়ার্ক যা ইউনিট টেস্টিং এবং কোডের সঠিকতা যাচাই করতে ব্যবহৃত হয়। যদিও দুটোই টেস্টিং ফ্রেমওয়ার্ক, তাদের মধ্যে কিছু মৌলিক পার্থক্য রয়েছে। এখানে RSpec এবং Minitest এর তুলনা করা হবে এবং তাদের ব্যবহারের নিয়ম আলোচনা করা হবে।
RSpec
RSpec হল একটি বহুল ব্যবহৃত, শক্তিশালী এবং অত্যন্ত পপুলার টেস্টিং ফ্রেমওয়ার্ক, যা রুবি কোডের জন্য Behavior-Driven Development (BDD) পদ্ধতির উপর ভিত্তি করে তৈরি। এটি সাধারণত describe, context, it, এবং expect মেথড ব্যবহার করে কোডের আউটপুট টেস্ট করার জন্য ডিজাইন করা হয়।
RSpec ইনস্টল করা
gem install rspecRSpec এর মৌলিক ব্যবহার
- টেস্ট সেটআপ:
RSpec ফাইল তৈরি করতে প্রথমে আপনার প্রোজেক্টের মধ্যেspecডিরেক্টরি তৈরি করতে হবে এবং সেখানে টেস্ট ফাইল লিখতে হবে। RSpec ফাইল লিখা:
একটি সাধারণ RSpec টেস্ট ফাইল দেখতে এরকম হতে পারে:# spec/sample_spec.rb RSpec.describe 'MyCalculator' do it 'adds two numbers' do result = 2 + 3 expect(result).to eq(5) # আউটপুট পরীক্ষা করা হচ্ছে end endএখানে,
describeব্লকটি টেস্ট ফাংশনালিটির জন্য একটি গোষ্ঠী তৈরি করেছে, এবংitব্লকটি একটি বিশেষ পরীক্ষার জন্য।RSpec টেস্ট চালানো:
টেস্ট চালানোর জন্য নিচের কমান্ডটি ব্যবহার করুন:rspec spec/sample_spec.rbএটি আপনার টেস্ট ফাইলটি রান করবে এবং রেজাল্ট আউটপুট করবে।
RSpec এর কিছু গুরুত্বপূর্ণ মেথড:
describe: টেস্ট গোষ্ঠী তৈরি করে।it: একটি একক টেস্ট কেস ব্যাখ্যা করে।expect: একটি অবজেক্টের উপরে চেক করার জন্য ব্যবহার করা হয় (যেমনexpect(result).to eq(5)).beforeএবংafter: টেস্ট চালানোর আগে এবং পরে কোড রান করতে ব্যবহৃত হয়।
RSpec এর উদাহরণ:
RSpec.describe "My Calculator" do
it "should add two numbers correctly" do
result = 2 + 3
expect(result).to eq(5)
end
it "should subtract two numbers correctly" do
result = 5 - 3
expect(result).to eq(2)
end
endMinitest
Minitest হল একটি ছোট এবং হালকা ওয়েট টেস্টিং ফ্রেমওয়ার্ক যা রুবি স্ট্যান্ডার্ড লাইব্রেরির একটি অংশ। এটি Test::Unit এর একটি উন্নত সংস্করণ হিসেবে কাজ করে এবং সাধারণত অ্যাসারশন মেথড ব্যবহার করে টেস্ট লেখা হয়। Minitest কমপ্যাক্ট এবং ডিফল্ট রুবি ফ্রেমওয়ার্ক হওয়ায় এটি অনেক ডেভেলপারদের জন্য সহজ এবং সরল।
Minitest ইনস্টল করা
Minitest সাধারণত রুবি স্ট্যান্ডার্ড লাইব্রেরিতে অন্তর্ভুক্ত থাকে, তবে যদি আপনি নতুন ভার্সন ইনস্টল করতে চান তবে এটি করতে পারেন:
gem install minitestMinitest এর মৌলিক ব্যবহার
- টেস্ট ফাইল লিখা:
Minitest এ টেস্ট ফাইল লেখার জন্য আপনাকেMinitest::Testক্লাসটি ইনহেরিট করতে হবে এবং টেস্ট মেথড তৈরি করতে হবে। Minitest ফাইল উদাহরণ:
# test/sample_test.rb require 'minitest/autorun' class TestCalculator < Minitest::Test def test_addition result = 2 + 3 assert_equal 5, result end def test_subtraction result = 5 - 3 assert_equal 2, result end endএখানে,
Minitest::Testক্লাস ইনহেরিট করেtest_additionএবংtest_subtractionনামক দুটি মেথড তৈরি করা হয়েছে।assert_equalঅ্যাসারশন মেথড ব্যবহার করে রেজাল্ট চেক করা হচ্ছে।Minitest টেস্ট চালানো:
টেস্ট চালানোর জন্য নিচের কমান্ড ব্যবহার করুন:
ruby test/sample_test.rbএটি টেস্ট ফাইলটি রান করবে এবং টেস্টের ফলাফল দেখাবে।
Minitest এর কিছু গুরুত্বপূর্ণ মেথড:
assert_equal: দুটি মান সমান কিনা চেক করতে ব্যবহৃত হয়।assert: কোনো শর্ত সত্য কিনা চেক করতে ব্যবহৃত হয়।refute: কোনো শর্ত মিথ্যা কিনা চেক করতে ব্যবহৃত হয়।setupএবংteardown: টেস্ট শুরু বা শেষ হওয়ার আগে কিছু ইনিশিয়ালাইজেশন বা ক্লিনআপ কার্যক্রম করতে ব্যবহৃত হয়।
Minitest এর উদাহরণ:
require 'minitest/autorun'
class CalculatorTest < Minitest::Test
def test_addition
result = 2 + 3
assert_equal 5, result
end
def test_subtraction
result = 5 - 3
assert_equal 2, result
end
endRSpec vs Minitest
| বৈশিষ্ট্য | RSpec | Minitest |
|---|---|---|
| স্টাইল | Behavior-Driven Development (BDD) | Test-Driven Development (TDD) |
| বিষয়বস্তু | বিস্তারিত পরীক্ষার বিবরণ, আর ভালোভাবে বর্ণনা করা হয় | সরল এবং সংক্ষিপ্ত পরীক্ষার বিবরণ |
| কনফিগারেশন | বেশি কনফিগারেশন এবং কাস্টমাইজেশন প্রয়োজন | কম কনফিগারেশন এবং সহজ ব্যবহৃত হয় |
| সহজতা | বেশি শক্তিশালী এবং বড় প্রোজেক্টের জন্য উপযুক্ত | ছোট প্রোজেক্টের জন্য ভালো এবং সহজ |
| লিখন পদ্ধতি | describe, it, expect | assert_equal, setup, teardown |
সারসংক্ষেপ
- RSpec হল একটি BDD টেস্টিং ফ্রেমওয়ার্ক যা পরীক্ষা এবং কোডের আচরণকে আরও বর্ণনামূলক এবং পরিষ্কারভাবে উপস্থাপন করতে সাহায্য করে।
- Minitest হল একটি ছোট এবং সরল TDD টেস্টিং ফ্রেমওয়ার্ক, যা স্ট্যান্ডার্ড লাইব্রেরির অংশ এবং সহজ টেস্টিং ফিচার প্রদান করে।
- RSpec সাধারণত বড় এবং জটিল প্রোজেক্টের জন্য উপযুক্ত, যেখানে বিশদ পরীক্ষা ও কনফিগারেশন প্রয়োজন হয়।
- Minitest সহজ এবং ছোট প্রোজেক্টের জন্য উপযুক্ত, যেখানে সরল টেস্টিং এবং কম কনফিগারেশন প্রয়োজন হয়।
এছাড়া, আপনি যদি রুবির টেস্টিং ফ্রেমওয়ার্ক বেছে নেন, তাহলে আপনার প্রয়োজনীয়তার ভিত্তিতে RSpec বা Minitest এর মধ্যে থেকে নির্বাচন করতে পারেন।
Read more