Aprende a probar tus ejercicios de Ruby en Exercism
Ejecuta los tests con:
$ ruby hamming_test.rb
Solo se ejecutará el primer test. Todos los demás se han dejado pendientes con el método skip. Elimina o comenta el siguiente skip a medida que logres que pase cada test.
El método skip le indica al conjunto de tests que no ejecute un test. Se usa comúnmente para evitar ejecutar tests de funcionalidad que aún no está implementada, y así puedas concentrarte en la parte en la que estás trabajando en este momento.
El resumen de la ejecución de tests mostrará la cantidad de tests omitidos. Deberías desactivar todos los skips antes de completar un ejercicio.
Si quieres color, ejecuta los tests con:
$ ruby hamming_test.rb -p
Si quieres ver los nombres de los tests, ejecuta los tests con:
$ ruby hamming_tests.rb -v
Si quieres ejecutar solo un test, puedes especificar uno o un grupo usando coincidencia por expresiones regulares.
$ ruby hamming_tests.rb -n /empty/
También puedes combinar las opciones.
Con tu recién descubierto poder de seleccionar los tests individuales o los grupos de tests que quieres ejecutar, quizás te convenga desactivar todos los skips.
Aprovechando que en Ruby los métodos se pueden sobrescribir, si agregaras esta línea de código:
def skip ; end
así, en el archivo de tests de Hamming
class HammingTest < Minitest::Test
def skip ; end
def test_identical_strands
entonces todos los skips se seguirán evaluando, pero dejarán que tus tests se ejecuten.
Claro, editar todos los archivos con el tiempo puede resultar molesto, así que podrías hacer lo mismo que hicimos nosotros al desarrollar los ejercicios: crear un archivo que contenga la definición de skip y requerirlo como librería cuando lo necesitemos.
Creamos una carpeta lib para guardar nuestras cosas «auxiliares», y se ve así:
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 descripción de cómo usarlo está comentada en ese listado del archivo, y el listado del archivo está en su estado completo.