Symfony
                   Comenzando
                 Pruebas Unitarias




 Rodrigo Miranda
    rmiranda@poodu.cl
contac...
Pruebas
Unitarias





        Rodrigo Miranda
    Blog: www.rodrigomiranda.cl
Pruebas
Unitarias
y
Funcionales:

  Se utiliza en la metodología TDD o desarrollo
  basado en pruebas (del inglés test-dr...
Rodrigo Miranda
Blog: www.rodrigomiranda.cl
Pruebas
Unitarias:

  Se encargan de analizar que un único componente
  de la aplicación (función o método) devuelva
  re...
Desarrollo
basado
en
Pruebas
o
TDD:

1.  En primer lugar se piensa en todo los casos de
    funcionamiento del método.

2....
Función
o
Método:

  Si constamos con un método que tiene como
  función eliminar carácteres problemáticos, y
  deseamos ...
Después
de
la
tabla
entrada
y
resultados:

1.  Se crearían las pruebas unitarias, se ejecutarían y
    todas fallarían.

2...
Framework
lime
de
pruebas





             Rodrigo Miranda
         Blog: www.rodrigomiranda.cl
Pruebas
Unitarias:

 Los archivos que contienen las pruebas unitarias
 son php normales cuyo nombre termina en
 Test.php. ...
Pruebas
Unitarias:

 Las primeras dos líneas de los archivos de prueba
 Unitaria son:




                      Rodrigo Mi...
Si no se cumpliera con el total de prueba
 especificado en el primer parámetro de la llamada
 lime_test, ejemplo:

  new l...
Métodos
disponibles:



 Después de instanciar la clase lime_test tenemos a
 disposición los siguientes métodos.




     ...
Rodrigo Miranda
Blog: www.rodrigomiranda.cl
Rodrigo Miranda
Blog: www.rodrigomiranda.cl
Ejemplo
strtolowerTest:

 Pruebas unitarias para la función strtolower().




                       Rodrigo Miranda
     ...
Rodrigo Miranda
Blog: www.rodrigomiranda.cl
Ejecución
en
línea
de
comandos

Ejecutamos nuestra prueba unitaria




                      Rodrigo Miranda
             ...
Rodrigo Miranda
Blog: www.rodrigomiranda.cl
miFuncionalTest





       Rodrigo Miranda
   Blog: www.rodrigomiranda.cl
Rodrigo Miranda
Blog: www.rodrigomiranda.cl
Rodrigo Miranda
Blog: www.rodrigomiranda.cl
Rodrigo Miranda
Blog: www.rodrigomiranda.cl
Dis?ntas
formas
de
Ejecución




                   Rodrigo Miranda
               Blog: www.rodrigomiranda.cl
Carga
automá?ca
de
Clases:

  Hemos visto hasta ahora que los script php para
  pruebas unitarias incluye al comienzo lla...
Al
comienzo
del
archivo:




                    Rodrigo Miranda
                Blog: www.rodrigomiranda.cl
Pruebas
Unitarias
de
las

   clases
de
Propel




            Rodrigo Miranda
        Blog: www.rodrigomiranda.cl
Pruebas
Unitarias
de
las
clases
de
Propel:

  Dado que las clases Propel dependen de muchas
  clases más, es necesario la...
Pasos
necesarios
para
Pruebas
Unitarias
Propel:

•  Obtener la carga automática, inicializando objeto de
   configuración....
Rodrigo Miranda
Blog: www.rodrigomiranda.cl
Ejemplo
de
lo
anterior:




                    Rodrigo Miranda
                Blog: www.rodrigomiranda.cl
Rodrigo Miranda
Blog: www.rodrigomiranda.cl
Preguntas?




    Rodrigo Miranda
Blog: www.rodrigomiranda.cl
Upcoming SlideShare
Loading in …5
×

Symfony Pruebas Unitarias

1,576
-1

Published on

Adentrándonos a las pruebas Unitarias en Symfony.

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,576
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Symfony Pruebas Unitarias

  1. 1. Symfony Comenzando Pruebas Unitarias Rodrigo Miranda rmiranda@poodu.cl contacto@rodrigomiranda.cl http://www.rodrigomiranda.cl
  2. 2. Pruebas
Unitarias
 Rodrigo Miranda Blog: www.rodrigomiranda.cl
  3. 3. Pruebas
Unitarias
y
Funcionales:   Se utiliza en la metodología TDD o desarrollo basado en pruebas (del inglés test-driven development) . Que considera la creación de las pruebas antes del desarrollo del código de la aplicación. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  4. 4. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  5. 5. Pruebas
Unitarias:   Se encargan de analizar que un único componente de la aplicación (función o método) devuelva resultados correcto de acuerdo a ciertas entradas.  Se encargan de un único caso cada vez, lo que significa que un único método o función puede necesitar varias pruebas unitarias. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  6. 6. Desarrollo
basado
en
Pruebas
o
TDD: 1.  En primer lugar se piensa en todo los casos de funcionamiento del método. 2.  Elaboración de una serie de entradas. 3.  Elaboración de las salidas de acuerdo a las entradas anteriores. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  7. 7. Función
o
Método:   Si constamos con un método que tiene como función eliminar carácteres problemáticos, y deseamos evaluarla a través de pruebas unitarias deberías realizar lo siguiente. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  8. 8. Después
de
la
tabla
entrada
y
resultados: 1.  Se crearían las pruebas unitarias, se ejecutarían y todas fallarían. 2.  Después se escribe el código en la aplicación para realizar correctamente el primer caso y se vuelven a pasar todas las pruebas, ésta vez no fallaría la primera pero si la segunda. Así se seguiría desarrollando el código del método completo. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  9. 9. Framework
lime
de
pruebas
 Rodrigo Miranda Blog: www.rodrigomiranda.cl
  10. 10. Pruebas
Unitarias: Los archivos que contienen las pruebas unitarias son php normales cuyo nombre termina en Test.php. Se encuentran ubicados en el directorio test/unit/ del proyecto. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  11. 11. Pruebas
Unitarias: Las primeras dos líneas de los archivos de prueba Unitaria son: Rodrigo Miranda Blog: www.rodrigomiranda.cl
  12. 12. Si no se cumpliera con el total de prueba especificado en el primer parámetro de la llamada lime_test, ejemplo: new lime_test(16, new lime_output_color()); El aviso desplegado por el sistema sería parecido a lo sgte: Rodrigo Miranda Blog: www.rodrigomiranda.cl
  13. 13. Métodos
disponibles:
 Después de instanciar la clase lime_test tenemos a disposición los siguientes métodos. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  14. 14. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  15. 15. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  16. 16. Ejemplo
strtolowerTest: Pruebas unitarias para la función strtolower(). Rodrigo Miranda Blog: www.rodrigomiranda.cl
  17. 17. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  18. 18. Ejecución
en
línea
de
comandos Ejecutamos nuestra prueba unitaria Rodrigo Miranda Blog: www.rodrigomiranda.cl
  19. 19. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  20. 20. miFuncionalTest
 Rodrigo Miranda Blog: www.rodrigomiranda.cl
  21. 21. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  22. 22. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  23. 23. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  24. 24. Dis?ntas
formas
de
Ejecución Rodrigo Miranda Blog: www.rodrigomiranda.cl
  25. 25. Carga
automá?ca
de
Clases:   Hemos visto hasta ahora que los script php para pruebas unitarias incluye al comienzo llamadas a archivos con include o require, esto se debe porque la carga automática de clases no funciona. Si es necesario incluir una gran cantidad de archivos alojados dentro de un directorio, quizás desees utilizar la clase sfSimpleAutoload en vez de incluirlos uno por uno. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  26. 26. Al
comienzo
del
archivo: Rodrigo Miranda Blog: www.rodrigomiranda.cl
  27. 27. Pruebas
Unitarias
de
las
 clases
de
Propel
 Rodrigo Miranda Blog: www.rodrigomiranda.cl
  28. 28. Pruebas
Unitarias
de
las
clases
de
Propel:   Dado que las clases Propel dependen de muchas clases más, es necesario la carga automática de clases, la misma que utiliza nuestro proyecto symfony. Además, para este tipo de pruebas es necesario una conexión válida a la base de datos e incluir algunos datos de prueba a ella (archivos data/fixtures) Rodrigo Miranda Blog: www.rodrigomiranda.cl
  29. 29. Pasos
necesarios
para
Pruebas
Unitarias
Propel: •  Obtener la carga automática, inicializando objeto de configuración. •  Obtener la conexión a la base de datos, inicializa la clase sfDatabaseManager. •  Cargar datos de prueba con la clase sfPropelData. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  30. 30. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  31. 31. Ejemplo
de
lo
anterior: Rodrigo Miranda Blog: www.rodrigomiranda.cl
  32. 32. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  33. 33. Preguntas?
 Rodrigo Miranda Blog: www.rodrigomiranda.cl

×