Quiero meterle pruebas unitarias a impostor >>, mi script de imposición editorial.
Cacho la guía para testing en rails >>, pero ¿cuál es la documentación autoritativa para ruby ‘a pelo’?
Existe la API >> pero me falta un buen tutorial. Está el wikibook >> y hay algo en rubytutorial >> pero ninguno me convence mucho…

Ok, por mientras vamos en pelotas no más.

require 'test/unit' #requerimos la librería

class TestImpostor < Test::Unit::TestCase #heredamos de TestCase
def test_test #métodos que empiecen por test_
assert_equal(1, 1)
end
end

supuestamente por el mero hecho de heredar de TestCase, al ejecutar el archivo se recorrerán todos los métodos que comiencen por test_ y se efectuarán las aserciones definidas en la api. Así es:

:~$ ruby TestImpostor.rb

Loaded suite /home/roberto/Documentos/imPOSTO/git/test/Tests
Started
.
Finished in 0.000189 seconds.
1 tests, 1 assertions, 0 failures, 0 errors

🙂
(ja, no sabía que podía parsear caritas felices)

Obviamente lo que necisto es un método que reciba mis mensajes de validación y sepa si están los que se esperan – y ni uno más.

Puede hacerse ésto con un simple assert ?

class TestImpostor < Test::Unit::TestCase
def test_mensajes
assert(funcion())#funca
end
def funcion()
return true
end
end

YAML

Otra necesidad al declarar casos de prueba es la de dejar los datos de entrada y los resultados esperados guardados de alguna manera. Para eso, en rails, por ejemplo >, se usa YAML >> (YAML Ain’t Markup Language). ¿Podré usar la misma librería que rails en una gema? Sino ¿cómo hacer Fixtures?

Una opción sería parsear archivos YAML a manopla con Psych >> pero, ¿no habrá algo ya hecho?

Rails creo que usa RSpec >>, pero la documentación no me aclara mucho el panorama.  Salvo que la gema es para documentación – justamente – más que para testeo.

Cucumber >> se vé la raja, permite documentar en lenguaje natural y, de éso, extraer documentación y tests.

El sitio utiliza cookies, para iniciar sesión o para cotizar los servicios. No usamos cookies de terceros.    Leer más
Privacidad