Ruby:
টেস্ট লিখা

কিভাবে:

রুবি ইউনিট টেস্ট লেখার জন্য Test::Unit নামক একটি বিল্ট-ইন লাইব্রেরি সাথে আসে, যা টেস্টিং প্র্যাকটিসগুলোকে সরল কাঠামোর মধ্যে আবদ্ধ করে। তবে, রুবি কমিউনিটি প্রায়ই RSpec এবং Minitest এর মত তৃতীয় পক্ষের লাইব্রেরিগুলোর দিকে ঝুঁকে থাকে কারণ এগুলোর ব্যক্তিগত প্রকাশভঙ্গি এবং নমনীয়তা বেশি।

Test::Unit ব্যবহার করে:

require 'test/unit'

class CalculatorTest < Test::Unit::TestCase
  def test_addition
    result = 2 + 2
    assert_equal 4, result
  end
end

টার্মিনাল থেকে আপনার টেস্ট ফাইল রান করুন, এবং আপনি একটি আউটপুট পাবেন যা টেস্টগুলোর সফলতা বা ব্যর্থতা নির্দেশ করবে:

Loaded suite test_calculator
Started
.
Finished in 0.001288 seconds.
1 tests, 1 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

RSpec ব্যবহার করে:

RSpec হল Ruby এর জন্য জনপ্রিয় একটি BDD (Behavior-Driven Development) ফ্রেমওয়ার্ক। gem install rspec দিয়ে জেম ইনস্টল করুন, তারপর আপনার প্রজেক্টে এটি ইনিশিয়ালাইজ করুন rspec --init দিয়ে।

# calculator_spec.rb
require_relative '../calculator'

describe Calculator do
  it 'correctly adds two numbers' do
    expect(Calculator.add(2, 2)).to eq(4)
  end
end

rspec কমান্ড দিয়ে টেস্টগুলি রান করুন। উদাহরণ আউটপুট:

.

Finished in 0.002 seconds (files took 0.1 seconds to load)
1 example, 0 failures

Minitest ব্যবহার করে:

Minitest TDD, BDD, মকিং, এবং বেঞ্চমার্কিং সাপোর্ট করে এমন একটি সম্পূর্ণ টেস্টিং ফ্যাসিলিটি প্রদান করে। gem install minitest দিয়ে এটি ইনস্টল করুন এবং নিম্নোক্ত উপায়ে ব্যবহার করুন:

# test_calculator.rb
require 'minitest/autorun'
require_relative '../calculator'

class CalculatorTest < Minitest::Test
  def test_addition
    assert_equal 4, Calculator.add(2, 2)
  end
end

মিনিটেস্টের জন্য সেট আপ করা rake টাস্ক বা সরাসরি আপনার টেস্ট ফাইল রান করুন। নমুনা আউটপুট:

Run options: --seed 33407

# Running:

.

Finished in 0.001027s, 974.5922 runs/s, 974.5922 assertions/s.
1 runs, 1 assertions, 0 failures, 0 errors, 0 skips

এই লাইব্রেরিগুলি ব্যবহার করে আপনার রুবি প্রজেক্টে টেস্ট বাস্তবায়ন করে, আপনি সেরা অভ্যাসগুলিকে মেনে চলেন, যা আরো বিশ্বস্ত এবং রক্ষণাবেক্ষণযোগ্য কোড বেস গড়ে তুলে।