Scopri come testare i tuoi esercizi Ruby su Exercism
Esegui i test con:
$ ruby hamming_test.rb
Verrà eseguito solo il primo test, mentre tutti gli altri sono stati messi in attesa tramite il metodo skip. Elimina o trasforma in commento il prossimo skip man mano che superi ogni test.
Il metodo skip dice alla suite di test di non eseguire un test. Di solito si usa per evitare di eseguire i test di funzionalità non ancora implementate, così puoi concentrarti sulla parte a cui stai lavorando in questo momento.
Il riepilogo dell'esecuzione dei test elencherà il numero di test saltati. Prima di completare un esercizio, conviene disattivare tutti gli skip.
Se vuoi i colori, esegui i test con:
$ ruby hamming_test.rb -p
Se vuoi vedere i nomi dei test, esegui i test con:
$ ruby hamming_tests.rb -v
Se vuoi eseguire un solo test, puoi specificarne uno o un gruppo usando una corrispondenza in stile espressione regolare.
$ ruby hamming_tests.rb -n /empty/
Puoi anche combinare le opzioni tra loro.
Ora che hai il nuovo potere di selezionare i singoli test o i gruppi di test che vuoi eseguire, potresti voler disattivare tutti gli skip.
Approfittando del fatto che in Ruby i metodi si possono sovrascrivere, se aggiungi questa riga di codice;
def skip ; end
in questo modo nel file di test di Hamming
class HammingTest < Minitest::Test
def skip ; end
def test_identical_strands
allora tutti gli skip verranno comunque valutati, ma i test verranno eseguiti lo stesso.
Certo, modificare tutti i file ogni volta può essere fastidioso, quindi potresti fare come abbiamo fatto noi sviluppando gli esercizi: creare un file che contiene la definizione di skip e richiederlo come libreria quando ci serve.
Abbiamo creato una cartella lib per tenere le nostre cose «ausiliarie», e si presenta così:
require 'minitest/autorun'
# You can use this to disable all skips in the current exercise by issuing the
# following command:
# ruby -I../lib -rdisable_skip <filename_test.rb>
module Minitest
class Test
def skip(_msg='', _bt=caller)
end
end
end
La descrizione su come usarlo è commentata in quel listato, e il listato è riportato nella sua versione completa.