RSpec এবং Minitest এর ব্যবহার

Testing এবং Debugging (টেস্টিং এবং ডিবাগিং) - রুবি প্রোগ্রামিং (Ruby Programming) - Computer Programming

284

RSpec এবং Minitest রুবিতে দুটি জনপ্রিয় টেস্টিং ফ্রেমওয়ার্ক যা ইউনিট টেস্টিং এবং কোডের সঠিকতা যাচাই করতে ব্যবহৃত হয়। যদিও দুটোই টেস্টিং ফ্রেমওয়ার্ক, তাদের মধ্যে কিছু মৌলিক পার্থক্য রয়েছে। এখানে RSpec এবং Minitest এর তুলনা করা হবে এবং তাদের ব্যবহারের নিয়ম আলোচনা করা হবে।


RSpec

RSpec হল একটি বহুল ব্যবহৃত, শক্তিশালী এবং অত্যন্ত পপুলার টেস্টিং ফ্রেমওয়ার্ক, যা রুবি কোডের জন্য Behavior-Driven Development (BDD) পদ্ধতির উপর ভিত্তি করে তৈরি। এটি সাধারণত describe, context, it, এবং expect মেথড ব্যবহার করে কোডের আউটপুট টেস্ট করার জন্য ডিজাইন করা হয়।

RSpec ইনস্টল করা

gem install rspec

RSpec এর মৌলিক ব্যবহার

  1. টেস্ট সেটআপ:
    RSpec ফাইল তৈরি করতে প্রথমে আপনার প্রোজেক্টের মধ্যে spec ডিরেক্টরি তৈরি করতে হবে এবং সেখানে টেস্ট ফাইল লিখতে হবে।
  2. 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 ব্লকটি একটি বিশেষ পরীক্ষার জন্য।

  3. 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
end

Minitest

Minitest হল একটি ছোট এবং হালকা ওয়েট টেস্টিং ফ্রেমওয়ার্ক যা রুবি স্ট্যান্ডার্ড লাইব্রেরির একটি অংশ। এটি Test::Unit এর একটি উন্নত সংস্করণ হিসেবে কাজ করে এবং সাধারণত অ্যাসারশন মেথড ব্যবহার করে টেস্ট লেখা হয়। Minitest কমপ্যাক্ট এবং ডিফল্ট রুবি ফ্রেমওয়ার্ক হওয়ায় এটি অনেক ডেভেলপারদের জন্য সহজ এবং সরল।

Minitest ইনস্টল করা

Minitest সাধারণত রুবি স্ট্যান্ডার্ড লাইব্রেরিতে অন্তর্ভুক্ত থাকে, তবে যদি আপনি নতুন ভার্সন ইনস্টল করতে চান তবে এটি করতে পারেন:

gem install minitest

Minitest এর মৌলিক ব্যবহার

  1. টেস্ট ফাইল লিখা:
    Minitest এ টেস্ট ফাইল লেখার জন্য আপনাকে Minitest::Test ক্লাসটি ইনহেরিট করতে হবে এবং টেস্ট মেথড তৈরি করতে হবে।
  2. 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 অ্যাসারশন মেথড ব্যবহার করে রেজাল্ট চেক করা হচ্ছে।

  3. 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
end

RSpec vs Minitest

বৈশিষ্ট্যRSpecMinitest
স্টাইলBehavior-Driven Development (BDD)Test-Driven Development (TDD)
বিষয়বস্তুবিস্তারিত পরীক্ষার বিবরণ, আর ভালোভাবে বর্ণনা করা হয়সরল এবং সংক্ষিপ্ত পরীক্ষার বিবরণ
কনফিগারেশনবেশি কনফিগারেশন এবং কাস্টমাইজেশন প্রয়োজনকম কনফিগারেশন এবং সহজ ব্যবহৃত হয়
সহজতাবেশি শক্তিশালী এবং বড় প্রোজেক্টের জন্য উপযুক্তছোট প্রোজেক্টের জন্য ভালো এবং সহজ
লিখন পদ্ধতিdescribe, it, expectassert_equal, setup, teardown

সারসংক্ষেপ

  • RSpec হল একটি BDD টেস্টিং ফ্রেমওয়ার্ক যা পরীক্ষা এবং কোডের আচরণকে আরও বর্ণনামূলক এবং পরিষ্কারভাবে উপস্থাপন করতে সাহায্য করে।
  • Minitest হল একটি ছোট এবং সরল TDD টেস্টিং ফ্রেমওয়ার্ক, যা স্ট্যান্ডার্ড লাইব্রেরির অংশ এবং সহজ টেস্টিং ফিচার প্রদান করে।
  • RSpec সাধারণত বড় এবং জটিল প্রোজেক্টের জন্য উপযুক্ত, যেখানে বিশদ পরীক্ষা ও কনফিগারেশন প্রয়োজন হয়।
  • Minitest সহজ এবং ছোট প্রোজেক্টের জন্য উপযুক্ত, যেখানে সরল টেস্টিং এবং কম কনফিগারেশন প্রয়োজন হয়।

এছাড়া, আপনি যদি রুবির টেস্টিং ফ্রেমওয়ার্ক বেছে নেন, তাহলে আপনার প্রয়োজনীয়তার ভিত্তিতে RSpec বা Minitest এর মধ্যে থেকে নির্বাচন করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...