Este documento describe cómo escribir pruebas unitarias para PHP usando NetBeans y PHPUnit. Explica los principios FIRST que deben seguir las pruebas unitarias (rápidas, aisladas, repetibles, autovalidables y escritas antes del código). Luego guía al lector en la creación de un proyecto de pruebas unitarias, incluyendo una clase Calculadora, una clase de pruebas y dos funciones de prueba para probar los métodos de suma de la clase Calculadora. Finalmente, muestra cómo refactorizar el nombre de variables
2. F I R S T
F: Rápida (Fast), La prueba unitaria
debe tener un tiempo de
ejecución corto, no debería
tardar su ejecución más de 3
segundos.
I: Aislada (Isolated), La prueba
unitaria debe funcionar por si
sola, no puede depender de la
ejecución de otras pruebas.
R: Repetible, La prueba unitaria se
tiene que poder correr tantas
veces como se quiera.
S: Auto Validable (Self-validating),
No requiere de comprobaciones
manuales.
T: Tiempo de escritura,
Preferiblemente antes de
escribir el código (Ver TDD).
Para garantizar que una prueba unitaria sea considerada
como buena debe cumplir con el principio FIRST
a continuación detallado.
3. Escribiendo una prueba unitaria
para PHP usando NetBeans y PHPUnit.
Creación de un nuevo proyecto
4. Escribiendo una prueba unitaria
para PHP usando NetBeans y PHPUnit.
Colocamos nombre y la ruta donde se va a almacenar el
proyecto, finalmente se da click en “Finish”
5. Escribiendo una prueba unitaria
para PHP usando NetBeans y PHPUnit.
Asi se visualiza el proyecto creado
6. Escribiendo una prueba unitaria
para PHP usando NetBeans y PHPUnit.
El Siguiente Paso que debemos
realizar es la creación de una
clase llamada
Calculadora.php
7. Escribiendo una prueba unitaria
para PHP usando NetBeans y PHPUnit.
Asi se visualiza el proyecto una
vez creada la clase
8. Escribiendo una prueba unitaria
para PHP usando NetBeans y PHPUnit.
Luego de la creación
de la clase, creamos
la clase de pruebas:
9. Escribiendo una prueba unitaria
para PHP usando NetBeans y PHPUnit.
Seleccionamos la carpeta donde vamos a crear las pruebas:
10. Escribiendo una prueba unitaria
para PHP usando NetBeans y PHPUnit.
Se puede ver
como se crea la
clase de pruebas
en la consola de
salida del IDE y
la clase de pruebas
generada a partir
de la clase
Calculadora.php
11. Escribiendo una prueba unitaria
para PHP usando NetBeans y PHPUnit.
Luego de la creación, lo primero que
hacemos es incluir la clase que se
le realizará el test y creamos nuestra
primera prueba llamada testSuma1y2()
12. Escribiendo una prueba unitaria
para PHP usando NetBeans y PHPUnit.
Vamos a correr
nuestra prueba
para ver que falle
13. Escribiendo una prueba unitaria
para PHP usando NetBeans y PHPUnit.
Siguiente paso es
completar la función
de prueba:
14. Escribiendo una prueba unitaria
para PHP usando NetBeans y PHPUnit.
Escribimos el código
para que nuestra
prueba pase
y volvemos a correr
15. Escribiendo una prueba unitaria
para PHP usando NetBeans y PHPUnit.
Se pueden agregar más funciones en test para
probar la función de la clase:
16. Escribiendo una prueba unitaria
para PHP usando NetBeans y PHPUnit.
Resultado del test
para las dos funciones:
17. Escribiendo una prueba unitaria
para PHP usando NetBeans y PHPUnit.
Y si cambiamos el valor de uno de los parametros y el resultado no es el esperado:
18. Escribiendo una prueba unitaria
para PHP usando NetBeans y PHPUnit.
El resultado del test
es el siguiente:
19. Escribiendo una prueba unitaria
para PHP usando NetBeans y PHPUnit.
El “.” indica que la prueba paso
satisfactoriamente
La “F” indica que la prueba no paso
correctamente
En la barra de progreso muestra el porcentaje
de aprobación y la linea donde esta el bug para
la función que no paso la prueba
20. REFACTOR A LA PRUEBA
El primer refactor es el
Cambio de los nombres
de las variables
por nombres descriptivos
21. REFACTOR A LA PRUEBA
Escribimos el nuevo nombre de la variable:
22. REFACTOR A LA PRUEBA
El IDE nos muestra la ventana refactoring donde podemos observar como quedaria
nuestra variable con el cambio realizado, en el boton “Do Refactoring” damos click
para que acepte el refactor
23. REFACTOR A LA PRUEBA
Tambien es posible realizarle refactor a la función de la clase:
24. REFACTOR A LA PRUEBA
Procedemos a dar click en el boton “Do Refactoring” para aceptar los cambios:
25. REFACTOR A LA PRUEBA
Asi queda, despues del refactor:
26. REFACTOR A LA PRUEBA
Luego de hacer el refactor, probamos los
tests:
27. REFACTOR A LA PRUEBA
Agregamos otra función de prueba
para validar que solo se permita
parametros numericos