Upload
cdechauri
View
904
Download
1
Tags:
Embed Size (px)
DESCRIPTION
Charla presentada en RubyConf Uruguay 2010. Experiencia escribiendo pruebas con Rspec, siendo el Ingles el segundo idioma.
Citation preview
My Journey Through
Carmen Diaz Echauri [email protected] @cucurucho
Who I am? / Quien Soy?
CARMEN
" Wow, I'm really nervous. “
I am humbled by the number of people, the energy and brilliant ideas that are going to be coming out South America over the next few years. I'm humbled by the fact that even though I am here to share some of my experience, that I could never come close to the experience and collective brilliance that is in this room and conference today.
And I'm in awe of how far our community of developers have come. So before I begin I want to thank you for being here and I'm honored to have this opportunity.
Culture / Cultura
Seymour Papert
Es la Cultura, no la Tecnología, la que trae el Cambio.
Agil Practices / Practicas Ágiles
Ciertas prácticas utilizadas en ciertas metodologías ágiles que implican código de calidad son:
programación en parejas, pruebas unitarias, desarrollo de la historias conducidas, pruebas de aceptación, la comunicación con el cliente y refactorización constante…. Y MAS! AGIL IS COOL
Hardware adecuado
Equipos reducidos
Practica 100 % ? ? ? ehhh
Diferentes proyectos & tecnologias
First Steps / Primeros pasos
⇒ Understanding other’s code/ Entender el código de otros.
Ensalada de codigo
First Steps / Primeros pasos
⇒ Understanding other’s code/ Entender el código de otros.
⇒ Code review/ Revisiones de código
⇒ Pair Programing/ Programación en pares.
Test First / Pruebas Primero Cuantas veces han escrito pruebas como?
Test First / Pruebas Primero Dia 1
Controladores
probando la vista
Todo se resume en el comportamiento
Las primeras frases a las que fui expuesta fueron:
You should wait a few months before starting work
Y mi Favorita:
You should wear glasses, jeans and t-shirt to look like a programmer.
You must stay at home and wait until your English gets better.
Tiempo / Timing independencia en ciertas situaciones
comportamiento esperado
contexto controlado
Sintaxis
Escribir pruebas sin necesidad de tener un dominio absoluto del Ingles.
miObjeto.should == ‘algo’ miObjeto debe ser igual a ‘algo’
miObjeto.should do ‘algo’ miObjeto debe hacer ‘algo’
Simple lectura …. no es necesario entender la sintaxis RSpec para poder utilizar
Rspec
Rspec es fácil de leer y entender (aun con un ingles básico)
definición de requisitos de alto nivel de manera concisa y rápida
Rspec proporciona una separación de las pruebas de otros elementos existentes en un MVC.
Testing en Capas
* Grafico preparado por RubyFocus http://www.rubyfocus.biz
Expectaciones
Existen dos métodos para chequear expectaciones: should() & should_not().
should respond_to() should be_nil -> funciona ademas con ? Metodo predicar Should be_valid Should not be_nil, should_not be_valid should eql, == -> compara valores Should equal, === ->compara objetos
Y MAS ……..
Y matchers……
Predicate Matcher
En Ruby un método predicate es un método que termina en “?”y retorna una expresión booleana.
mystring.empty?.should == true
mystring.should be_empty
Las expectaciones van escritas dentro de la “cosa Descripta” y en un contexto definido
Estructura
before
Mi súper diccionario
Context: Contexto descripto
Describe: Describir “algo”
It <comportamiento> : comportamiento esperado de la cosa descripta
Should: deberia
Should not: no deberia
Así que una razón para usar Rspec es su Claridad
La clave esta conocer las palabras “mágicas” que describan el comportamiento deseado en pocos pasos.
Prueba escrita por un niño Test First Teaching al REVES ;-)
Algunos Tips
Variables de Instancias & Let Tips
Tips
Let
Te muestra quienes son los jugadores o involucrados.
Retorna una evaluacion ‘lazy’
Descarta el before block.
Tips
Subject & it
Sujeto implicito
Tips
Subject & it
Sujeto implicito
Tips
Subject & it
Definir el subjeto
Tips
Its => Posesivo…
Tips
Simple output -Simple lectura Tips
Changes Tips
Expect
Util para expectaciones de ActiveRecords!
Tips
Shoulda
versus
Tips
Shoulda Rspec generara una clara descripción
Requiere gem shoulda
validate_format_of, validate_presence_of, ……
Tips
Again!
Context: Contexto descripto
Describe: Describir “algo”
It <comportamiento> : comportamiento esperado de la cosa descripta
Should: deberia
Should not: no deberia
La clave esta conocer las palabras “mágicas” que describan el comportamiento deseado en pocos pasos.
Hoy en Dia. El Código se lee mas de lo que se escribe
Gracias! - Thanks Cool People: YOU A huge thanks goes out to:
My mentors & work team & for helping out with challenges and site coding!
Inspirada por