my journey through rspec

Post on 17-Jan-2015

914 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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 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

top related