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.