Gastón Ramos

"La mayoría de las gaviotas no se molesta en aprender sino las normas de vuelo más elementales: como ir y volver entre playa y comida. Para la mayoría de las gaviotas, no es volar lo que importa, sino comer. Para esta gaviota, sin embargo, no era comer lo que le importaba, sino volar. Más que nada en el mundo, Juan Salvador Gaviota amaba volar".

Category: bdd

Autotest desde linux como en una Mac

Mirando algunos videos de rspec y autotest, noté que al correr los tests, en la pantalla de la notebook del video salían unos hermosos mensajes con transparencias, investigando un poco encontré que esto se hace con un programa llamado growl que sólo viene para usuarios de Mac OS X :( luego de tal desilusión comencé a buscar una alternativa en GNU/Linux … sí! hay un programa llamado aosd_cat que sirve para mostrar mensajes de texto UTF8 en la pantalla, vamos al grano:

apt-get install aosd_cat

Para probarlo podemos abrir una consola y ejecutar:

 echo "Probando..." | aosd_cat   --back-color=black  \ 
          --fore-color=red \
          --back-opacity=135  --padding=50

Ahora vamos a configurar autotest para que use aosd_cat

editamos el archivo ~/.autotest y ponemos lo siguiente:

module Autotest::Growl
  def self.aosd_cat title, msg, color
    params = "--back-color=black --fade-in=20 --fade-out=100 \
                   --fore-color=#{color} --back-opacity=200 \
                   --padding=30 \  --shadow-offset=0 \
                   --x-offset=0 --y-offset=0"

    system "echo \"#{title} #{msg} \" | aosd_cat #{params}"

  end

  Autotest.add_hook :run do  |at|

    aosd_cat "Autotest running", "Started", "Orange"

  end

  Autotest.add_hook :ran_command do |at|
    results = [at.results].flatten.join("\n")
    output  = results\
    .slice(/(\d+)\s+examples?,\s*(\d+)\s+failures?(,\s*(\d+)\s+pending)?/)
    if output
      if $~[2].to_i > 0
        aosd_cat "FAIL !!!", "#{output}", "red"
      else
        color = output =~ /[1-9]\spending?/ ? "yellow" : "green"
        aosd_cat "Pass", "#{output}", "#{color}"
      end

  end
end

Listo, ya podemos usar autotest y ver los mensajes como en una mac ;)

autotest path-al-proyecto/

Les dejo un screencast para que vean como quedó.

Behavior driven development

Dado que he visto en algunos blog el tema este de “BDD”, voy a ver de qué se trata esto del desarrollo guiado por comportamiento.

Behavior driven development (BDD) Es una técnica de programación que cuestiona el comportamiento de una aplicación antes y durante el proceso de desarrollo. Mediante preguntas tales como “Qué debería hacer esta aplicación?” o “Qué debería hacer esta parte?” los desarrolladores pueden identififcar brechas en la comprensión del problema del dominio y hablar con sus pares o expertos del dominio para econtrar las respuestas.

Mediante el enfoque en el comportamiento de las aplicaciones, los desarrolladores intentan crear un lenguaje común entre todos: gestión, usuarios, desarrolladores, jefe de proyecto y expertos de dominio.

El propósito es cuestionar cada parte de la aplicación y la aplicación entera. Estas cuestiones no tratan meramente características técnicas o requerimientos sino con características relacionadas con el tiempo y costo. Es factible para nuestra organización construir una aplicación de este ámbito? es una pregunta que se puede responder escribiendo tests de comportamiento. Exponiendo las complejidades de antemano, desarrolladores y jefes de proyecto pueden realizar mejores estimaciones de cómo ajustar la organización para manejar la creación de una aplicación. Read the rest of this entry »