Ruby:
Testien kirjoittaminen

Miten:

Ruby sisältää valmiiksi Test::Unit-kirjaston yksikkötestien kirjoittamiseen, kapseloiden testikäytäntöjä yksinkertaisiin rakenteisiin. Kuitenkin Rubyn yhteisö kallistuu usein kolmannen osapuolen kirjastoihin, kuten RSpec ja Minitest, niiden paremman ilmaisukyvyn ja joustavuuden vuoksi.

Test::Unitin käyttö:

require 'test/unit'

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

Aja testitiedostosi komentoriviltä, ja sinun pitäisi saada tuloste, joka ilmoittaa testien onnistumisesta tai epäonnistumisesta:

Loaded suite test_calculator
Started
.
Valmis 0.001288 sekunnissa.
1 testit, 1 väitteet, 0 epäonnistumiset, 0 virheet, 0 odottavat, 0 puutteet, 0 ilmoitukset
100% läpäissyt

RSpecin käyttö:

RSpec on suosittu BDD (Behavior-Driven Development) kehys Rubyille. Asenna gem komennolla gem install rspec, sitten alusta se projektissasi komennolla rspec --init.

# calculator_spec.rb
require_relative '../calculator'

describe Calculator do
  it 'laskee kaksi lukua oikein' do
    expect(Calculator.add(2, 2)).to eq(4)
  end
end

Aja testit rspec-komennolla. Esimerkkituloste:

.

Valmis 0.002 sekunnissa (tiedostot ladattiin 0.1 sekunnissa)
1 esimerkki, 0 epäonnistumisia

Minitestin käyttö:

Minitest tarjoaa täydellisen joukon testausmahdollisuuksia tukien TDD:tä, BDD:tä, väärentämistä ja suorituskyvyn testausta. Asenna se komennolla gem install minitest ja käytä seuraavasti:

# 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

Aja testitiedostosi suoraan tai rake-tehtävän kautta, joka on asetettu minitestille. Näytetuloste:

Ajoasetukset: --seed 33407

# Suoritetaan:

.

Valmis 0.001027s, 974.5922 ajoa/s, 974.5922 väitteitä/s.
1 ajoa, 1 väitteitä, 0 epäonnistumisia, 0 virheitä, 0 ohituksia

Käyttämällä näitä kirjastoja testien toteuttamiseen Ruby-projekteissasi, noudatat parhaita käytäntöjä, mikä johtaa luotettavampiin ja ylläpidettävämpiin koodikantoihin.