My Journey Through
Carmen Diaz Echauri
cdechauri@gmail.com
@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 th...
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 calid...
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ódig...
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 bef...
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 d...
Simple lectura ….
  no es necesario entender la sintaxis RSpec para poder utilizar
Rspec
  Rspec es fácil de leer y ente...
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 ...
Predicate Matcher
En Ruby un método predicate es un método que termina
en “?”y retorna una expresión booleana.
mystring.em...
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> : comportamient...
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.
...
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 ...
  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...
Upcoming SlideShare
Loading in …5
×

My journey through Rspec

1,066 views
992 views

Published on

Charla presentada en RubyConf Uruguay 2010.
Experiencia escribiendo pruebas con Rspec, siendo el Ingles el segundo idioma.

Published in: Technology, Self Improvement
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,066
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

My journey through Rspec

  1. 1. My Journey Through Carmen Diaz Echauri cdechauri@gmail.com @cucurucho
  2. 2. Who I am? / Quien Soy? CARMEN
  3. 3. " Wow, I'm really nervous. “
  4. 4. 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.
  5. 5. Culture / Cultura Seymour Papert Es la Cultura, no la Tecnología, la que trae el Cambio.
  6. 6. 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
  7. 7. First Steps / Primeros pasos ⇒ Understanding other’s code/ Entender el código de otros. Ensalada de codigo
  8. 8. 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.
  9. 9. Test First / Pruebas Primero Cuantas veces han escrito pruebas como?
  10. 10. Test First / Pruebas Primero Dia 1 Controladores  probando la vista
  11. 11. 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.
  12. 12. Tiempo / Timing independencia en ciertas situaciones comportamiento esperado contexto controlado
  13. 13. 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’
  14. 14. 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.
  15. 15. Testing en Capas * Grafico preparado por RubyFocus http://www.rubyfocus.biz
  16. 16. 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……
  17. 17. 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
  18. 18. Las expectaciones van escritas dentro de la “cosa Descripta” y en un contexto definido Estructura before
  19. 19. 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.
  20. 20. Prueba escrita por un niño Test First Teaching al REVES ;-)
  21. 21. Algunos Tips
  22. 22. Variables de Instancias & Let Tips
  23. 23. Tips
  24. 24. Let   Te muestra quienes son los jugadores o involucrados.   Retorna una evaluacion ‘lazy’   Descarta el before block. Tips
  25. 25. Subject & it Sujeto implicito Tips
  26. 26. Subject & it Sujeto implicito Tips
  27. 27. Subject & it Definir el subjeto Tips
  28. 28. Its => Posesivo… Tips
  29. 29. Simple output -Simple lectura Tips
  30. 30. Changes Tips
  31. 31. Expect Util para expectaciones de ActiveRecords! Tips
  32. 32. Shoulda versus Tips
  33. 33. Shoulda Rspec generara una clara descripción Requiere gem shoulda validate_format_of, validate_presence_of, …… Tips
  34. 34. 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.
  35. 35.   Hoy en Dia. El Código se lee mas de lo que se escribe
  36. 36. 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

×