Minitest estas unu el la du ĉefaj kontrolsistemoj en Rubeno, la alia estas RSpec. La bazpenso de la sistemo, kontraste al RUnit aŭ RSpec estas ke oni povas etendi ĝin facile per kromprogramojn, do la sistemo mem estas tre eta. Ekzistas multajn kromprogramojn per etendi la sistemon kaj eble mi verkos pri ili poste, sed nun mi nur volas doni enkonduketon al vi.

Jen la baza ekzemplo:

require 'minitest/autorun'

class Aŭto
  attr_reader :rapideco

  def initialize
    @rapideco = 0
  end

  def pliRapidiĝi
    @rapideco += 10
  end
end

class AŭtoTest < Minitest::Test
  def setup
    @aŭto = Aŭto.new
  end

  def test_ĝi_komenciĝas_senmova
    assert_equal 0, @aŭto.rapideco
  end

  def test_ĝi_pligrandiĝas_po_dek
    @aŭto.pliRapidiĝi

    assert_equal 10, @aŭto.rapideco
  end
end

Tio estas la bazo, sed bedaŭrinde la instalado bezonas iom da traktado. Minitest estis parto de la ĉeffontaro de Rubeno ekde 1.9, sed antaŭ Rubeno 2.2 ĝi estas tre malnova versio. Rubeno 2.2 havas Minitest kiel dependaĵo, do ĝi estas pli ĝisdatigata versio. Mallonge, estas la plej bone uzi Bundler.

Jen ekzempla Bundler dosiero:

source "https://rubygems.org"

gem "minitest"

Kaj la nova fontkodo:

require 'bundler/setup'
Bundler.require

require 'minitest/autorun'

class Aŭto
  attr_reader :rapideco

  def initialize
    @rapideco = 0
  end

  def pliRapidiĝi
    @rapideco += 10
  end
end

class AŭtoTest < Minitest::Test
  def setup
    @aŭto = Aŭto.new
  end

  def test_ĝi_komenciĝas_senmova
    assert_equal 0, @aŭto.rapideco
  end

  def test_ĝi_pligrandiĝas_po_dek
    @aŭto.pliRapidiĝi

    assert_equal 10, @aŭto.rapideco
  end
end

Poste mi verkos pri la Spec-sintakso, kiel kontroli viajn proprajn gem-oj, kiel kontroli Rails programon kaj pli pri Bundler.