Ruby:
Scrivere test

Come fare:

Ruby include una libreria integrata chiamata Test::Unit per scrivere test unitari, incapsulando le pratiche di testing in strutture semplici. Tuttavia, la comunità Ruby tende spesso a preferire librerie di terze parti come RSpec e Minitest per la loro maggiore espressività e flessibilità.

Usare Test::Unit:

require 'test/unit'

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

Esegui il tuo file di test dal terminale, e dovresti ottenere un output che indica il successo o il fallimento dei test:

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

Usare RSpec:

RSpec è un popolare framework BDD (Behavior-Driven Development) per Ruby. Installa la gemma con gem install rspec, poi inizializzala nel tuo progetto con rspec --init.

# calculator_spec.rb
require_relative '../calculator'

describe Calculator do
  it 'aggiunge correttamente due numeri' do
    expect(Calculator.add(2, 2)).to eq(4)
  end
end

Esegui i test con il comando rspec. Esempio di output:

.

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

Usare Minitest:

Minitest fornisce una suite completa di strumenti di testing che supporta TDD, BDD, mocking e benchmarking. Installala con gem install minitest e usala come segue:

# 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

Esegui direttamente il tuo file di test o tramite il task rake impostato per minitest. Output di esempio:

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

Implementando i test nei tuoi progetti Ruby utilizzando queste librerie, aderisci alle migliori pratiche, portando a basi di codice più affidabili e mantenibili.