3. Sobre mi
Moisés Gallego
Programador en Bodaclick
Miembro de Symfony-Madrid
Twitter:
@moisesgallego
Blogs:
moidev.com / fotux.es
12/11/12 Breve introducción a PHPUnit 3 / 81
4. ¿Sobre qué trata la
charla?
12/11/12 Breve introducción a PHPUnit 4 / 81
5. ¿Sobre qué trata la charla?
● Conceptos básicos de Testing
12/11/12 Breve introducción a PHPUnit 5 / 81
6. ¿Sobre qué trata la charla?
● Conceptos básicos de Testing
● Conceptos básicos sobre TDD
12/11/12 Breve introducción a PHPUnit 6 /1
8
7. ¿Sobre qué trata la charla?
● Conceptos básicos de Testing
● Conceptos básicos sobre TDD
● Funcionalidades de PHPUnit
12/11/12 Breve introducción a PHPUnit 7 / 81
8. ¿Sobre qué trata la charla?
● Conceptos básicos de Testing
● Conceptos básicos sobre TDD
● Funcionalidades de PHPUnit
● Ejemplos
12/11/12 Breve introducción a PHPUnit 8 / 81
9. ¿Sobre qué NO
trata la charla?
12/11/12 Breve introducción a PHPUnit 10 / 81
10. ¿Sobre qué NO trata la charla?
Venderos la moto
12/11/12 Breve introducción a PHPUnit 11 / 81
11. ¿Sobre qué NO trata la charla?
12/11/12 Breve introducción a PHPUnit 12 / 81
12. ¿Sobre qué NO trata la charla?
“Evangelizar”
12/11/12 Breve introducción a PHPUnit 13 / 81
13. ¿Sobre qué NO trata la charla?
12/11/12 Breve introducción a PHPUnit 14 / 81
15. “Even good programmers make
mistakes. The difference
between a good programmer and
a bad programmer is that the
good programmer uses tests to
detect his mistakes as soon as
possible.
PHPUnit manual
12/11/12 Breve introducción a PHPUnit 16 / 81
16. ¿Qué es el testing?
Simplemente pruebas
12/11/12 Breve introducción a PHPUnit 17 / 81
17. ¿Qué es el testing?
a s
á tic
tom
Au
12/11/12 Breve introducción a PHPUnit 18 / 81
18. ¿Qué es el testing?
a s
Ma
á tic
n
ua
tom
les
Au
12/11/12 Breve introducción a PHPUnit 19 / 81
19. ¿Qué es el testing?
a s
Ma
á tic
n
ua
tom
les
Au
Funcionales
12/11/12 Breve introducción a PHPUnit 20 / 81
20. ¿Qué es el testing?
a s
Ma
á tic
n
ua
tom
les
Au
Funcionales Regresión
12/11/12 Breve introducción a PHPUnit 21 / 81
21. ¿Qué es el testing?
a s
Ma
á tic
n
ua
tom
les
Au
g ra c ió n
Inte
Funcionales Regresión
12/11/12 Breve introducción a PHPUnit 22 / 81
22. ¿Qué es el testing?
a s
Ma
á tic
n
ua
tom
les
Au
Carga
g ra c ió n
Inte
Funcionales Regresión
12/11/12 Breve introducción a PHPUnit 23 / 81
23. ¿Qué es el testing?
a s
Ma
á tic ETC
n
ua
tom
les
Au
Carga
g ra c ió n
Inte
Funcionales Regresión
12/11/12 Breve introducción a PHPUnit 24 / 81
24. ¿Qué es el testing?
a s
Ma
á tic ETC
n
ua
tom
les
Au
Carga
Unitarias c ió n
Inte g ra
Funcionales Regresión
12/11/12 Breve introducción a PHPUnit 25 / 81
25. ¿Qué son las pruebas
unitarias?
12/11/12 Breve introducción a PHPUnit 26 / 81
26. ''Una prueba unitaria es una forma
de probar el correcto
funcionamiento de un módulo de
código. Esto sirve para asegurar
que cada uno de los módulos
funcione correctamente por
separado''
Wikipedia
12/11/12 Breve introducción a PHPUnit 27 / 81
27. Caractéristicas de los tests unitarios
● Automatizables
● Completos
● Repetibles || Reutilizables
● Independientes
12/11/12 Breve introducción a PHPUnit 28 / 81
28. Ok. Eso es testing.
¿TDD no es lo mismo?
12/11/12 Breve introducción a PHPUnit 29 / 81
29. No!
12/11/12 Breve introducción a PHPUnit 30 / 81
30. Testing
Diseño
Diseño
Implementación
Implementación
Test
Test
12/11/12 Breve introducción a PHPUnit 31 / 81
31. TDD
Diseño
Diseño
Test
Test
Implementación
Implementación
12/11/12 Breve introducción a PHPUnit 32 / 81
32. “Desarrollo guiado por pruebas, o
Test-driven development (TDD)
es una práctica de programación
que involucra otras dos prácticas:
Escribir las pruebas primero (Test
First Development) y
Refactorización (Refactoring)...
12/11/12 Breve introducción a PHPUnit 33 / 81
33. ...El propósito del
desarrollo guiado por
pruebas es lograr un
código limpio que
funcione...
12/11/12 Breve introducción a PHPUnit 34 / 81
34. ...La idea es que los
requisitos sean traducidos
a pruebas... se garantizará
el software cumple con los
requisitos que se han
establecido”
12/11/12 Breve introducción a PHPUnit 35 / 81
53. Tests doubles
Mocks && Stubs
12/11/12 Breve introducción a PHPUnit 54 / 81
54. - Los Stubs proporcionan respuestas
predefinidas a ciertas llamadas durante
los tests, sin responder a cualquier otra
cosa para la que no hayan sido
programados.
- Los Mocks son objetos
preprogramados con expectativas que
conforman la especificación de lo que
se espera que reciban las llamadas.
12/11/12 Breve introducción a PHPUnit 55 / 81
55. Esta charla es introductoria
12/11/12 Breve introducción a PHPUnit 56 / 81
56. Esta charla es introductoria
No filosófica
12/11/12 Breve introducción a PHPUnit 57 / 81
57. “Cuando necesitamos
testear algo que
depende de un objeto
ajeno al test que vamos
a realizar...
12/11/12 Breve introducción a PHPUnit 58 / 81
58. ...ese objeto no debe
crearse realmente, ya
que rompería el
principio “unitario”...
12/11/12 Breve introducción a PHPUnit 59 / 81
59. ...para eso creamos
objetos “falsos” que se
comportan como
deberían los reales...
12/11/12 Breve introducción a PHPUnit 60 / 81
60. ...Ese es el cometido de
los mocks y los stubs”
12/11/12 Breve introducción a PHPUnit 61 / 81
61. ...Ese es el cometido de
los mocks y los stubs”
Yo mismo con mis propias palabras
12/11/12 Breve introducción a PHPUnit 62 / 81
62. A ver si con un
ejemplo lo
comprendemos mejor
12/11/12 Breve introducción a PHPUnit 63 / 81
64. Cobertura de código
-
Code coverage
12/11/12 Breve introducción a PHPUnit 65 / 81
65. Nos muestra cuanto y qué código
está cubierto por nuestros tests.
Muy útil para ver código
“deprecated” y posibles bugs.
12/11/12 Breve introducción a PHPUnit 66 / 81