SlideShare una empresa de Scribd logo
1 de 27
Sebastián Valencia
Navarro
@svalencian
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.
Escribiendo una prueba unitaria
para PHP usando NetBeans y PHPUnit.

Creación de un nuevo proyecto
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”
Escribiendo una prueba unitaria
para PHP usando NetBeans y PHPUnit.
Asi se visualiza el proyecto creado
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
Escribiendo una prueba unitaria
para PHP usando NetBeans y PHPUnit.
Asi se visualiza el proyecto una
vez creada la clase
Escribiendo una prueba unitaria
para PHP usando NetBeans y PHPUnit.
Luego de la creación
de la clase, creamos
la clase de pruebas:
Escribiendo una prueba unitaria
para PHP usando NetBeans y PHPUnit.
Seleccionamos la carpeta donde vamos a crear las pruebas:
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
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()
Escribiendo una prueba unitaria
para PHP usando NetBeans y PHPUnit.
Vamos a correr
nuestra prueba
para ver que falle
Escribiendo una prueba unitaria
para PHP usando NetBeans y PHPUnit.
Siguiente paso es
completar la función
de prueba:
Escribiendo una prueba unitaria
para PHP usando NetBeans y PHPUnit.
Escribimos el código
para que nuestra
prueba pase
y volvemos a correr
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:
Escribiendo una prueba unitaria
para PHP usando NetBeans y PHPUnit.
Resultado del test
para las dos funciones:
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:
Escribiendo una prueba unitaria
para PHP usando NetBeans y PHPUnit.
El resultado del test
es el siguiente:
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
REFACTOR A LA PRUEBA
El primer refactor es el
Cambio de los nombres
de las variables
por nombres descriptivos
REFACTOR A LA PRUEBA
Escribimos el nuevo nombre de la variable:
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
REFACTOR A LA PRUEBA
Tambien es posible realizarle refactor a la función de la clase:
REFACTOR A LA PRUEBA
Procedemos a dar click en el boton “Do Refactoring” para aceptar los cambios:
REFACTOR A LA PRUEBA
Asi queda, despues del refactor:
REFACTOR A LA PRUEBA
Luego de hacer el refactor, probamos los
tests:
REFACTOR A LA PRUEBA
Agregamos otra función de prueba
para validar que solo se permita
parametros numericos

Más contenido relacionado

La actualidad más candente

Presentacion practica 5_a
Presentacion practica 5_aPresentacion practica 5_a
Presentacion practica 5_a12345678910diva
 
Ejecutando Mi Primer Programa En Java
Ejecutando Mi Primer Programa En JavaEjecutando Mi Primer Programa En Java
Ejecutando Mi Primer Programa En Javamtemarialuisa
 
Ejecutando Mi Primer Programa En Java
Ejecutando Mi Primer Programa En JavaEjecutando Mi Primer Programa En Java
Ejecutando Mi Primer Programa En Javamtemarialuisa
 
TUTORIAL DE COMO PONER UN VIDEO DE DIVERSAS FORMAS EN EL CELULAR
TUTORIAL DE COMO PONER UN VIDEO DE DIVERSAS FORMAS EN EL CELULARTUTORIAL DE COMO PONER UN VIDEO DE DIVERSAS FORMAS EN EL CELULAR
TUTORIAL DE COMO PONER UN VIDEO DE DIVERSAS FORMAS EN EL CELULARMichellepRodriguez
 
Testing & debugging lightning web components
Testing & debugging lightning web componentsTesting & debugging lightning web components
Testing & debugging lightning web componentsFederico Giust
 
Ejecutando mi primer programa en java
Ejecutando mi primer programa en javaEjecutando mi primer programa en java
Ejecutando mi primer programa en javaMaría Luisa Velasco
 
Taller de Introducción a Scripting con gvSIG
Taller de Introducción a Scripting con gvSIGTaller de Introducción a Scripting con gvSIG
Taller de Introducción a Scripting con gvSIGÓscar Martínez Olmos
 
Instructivo crear proyectos_en_devcpp
Instructivo crear proyectos_en_devcppInstructivo crear proyectos_en_devcpp
Instructivo crear proyectos_en_devcppmargaritapereira
 

La actualidad más candente (16)

Presentacion practica 5_a
Presentacion practica 5_aPresentacion practica 5_a
Presentacion practica 5_a
 
Ejecutando Mi Primer Programa En Java
Ejecutando Mi Primer Programa En JavaEjecutando Mi Primer Programa En Java
Ejecutando Mi Primer Programa En Java
 
Ejecutando Mi Primer Programa En Java
Ejecutando Mi Primer Programa En JavaEjecutando Mi Primer Programa En Java
Ejecutando Mi Primer Programa En Java
 
In 20
In 20In 20
In 20
 
Usoeclipse
UsoeclipseUsoeclipse
Usoeclipse
 
TUTORIAL DE COMO PONER UN VIDEO DE DIVERSAS FORMAS EN EL CELULAR
TUTORIAL DE COMO PONER UN VIDEO DE DIVERSAS FORMAS EN EL CELULARTUTORIAL DE COMO PONER UN VIDEO DE DIVERSAS FORMAS EN EL CELULAR
TUTORIAL DE COMO PONER UN VIDEO DE DIVERSAS FORMAS EN EL CELULAR
 
Testing & debugging lightning web components
Testing & debugging lightning web componentsTesting & debugging lightning web components
Testing & debugging lightning web components
 
Wile
WileWile
Wile
 
Wildfly 10
Wildfly 10Wildfly 10
Wildfly 10
 
Tips visual studio
Tips visual studioTips visual studio
Tips visual studio
 
Ejecutando mi primer programa en java
Ejecutando mi primer programa en javaEjecutando mi primer programa en java
Ejecutando mi primer programa en java
 
Symfony parte 17
Symfony parte 17Symfony parte 17
Symfony parte 17
 
Taller de Introducción a Scripting con gvSIG
Taller de Introducción a Scripting con gvSIGTaller de Introducción a Scripting con gvSIG
Taller de Introducción a Scripting con gvSIG
 
Comandos de Java
Comandos de JavaComandos de Java
Comandos de Java
 
Instructivo crear proyectos_en_devcpp
Instructivo crear proyectos_en_devcppInstructivo crear proyectos_en_devcpp
Instructivo crear proyectos_en_devcpp
 
Programación Web (PHP)
Programación Web (PHP)Programación Web (PHP)
Programación Web (PHP)
 

Similar a Cómo escribir pruebas unitarias en PHP con NetBeans y PHPUnit

Cesnavarra 2009-boletín 1
Cesnavarra 2009-boletín 1Cesnavarra 2009-boletín 1
Cesnavarra 2009-boletín 1Cein
 
Seminario de Test Development Driven
Seminario de Test Development DrivenSeminario de Test Development Driven
Seminario de Test Development DrivenParadigma Digital
 
Usando Netbeans para desarrollos en PHP
Usando Netbeans para desarrollos en PHPUsando Netbeans para desarrollos en PHP
Usando Netbeans para desarrollos en PHPDKR Visión SRL
 
5-Unidad 1: Introducción a la Plataforma .NET-1.3 Aplicaciones en C# .NET-Int...
5-Unidad 1: Introducción a la Plataforma .NET-1.3 Aplicaciones en C# .NET-Int...5-Unidad 1: Introducción a la Plataforma .NET-1.3 Aplicaciones en C# .NET-Int...
5-Unidad 1: Introducción a la Plataforma .NET-1.3 Aplicaciones en C# .NET-Int...Luis Fernando Aguas Bucheli
 
Junit y Jmock
Junit y JmockJunit y Jmock
Junit y Jmockkaolong
 
Workshop iOS 3: Testing, protocolos y extensiones
Workshop iOS 3: Testing, protocolos y extensionesWorkshop iOS 3: Testing, protocolos y extensiones
Workshop iOS 3: Testing, protocolos y extensionesVisual Engineering
 
5- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net
5- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net5- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net
5- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .netLuis Fernando Aguas Bucheli
 
Ingenieria de sw Junit
Ingenieria de sw JunitIngenieria de sw Junit
Ingenieria de sw Junitpattyand89
 
Manual de netbeans_7(2)(2)(2)
Manual de netbeans_7(2)(2)(2)Manual de netbeans_7(2)(2)(2)
Manual de netbeans_7(2)(2)(2)javier_ot99
 
TEMA Nº 7: SENTENCIAS DE CONTROL DE FLUJO EN JAVA II
TEMA Nº 7: SENTENCIAS DE CONTROL DE FLUJO EN JAVA IITEMA Nº 7: SENTENCIAS DE CONTROL DE FLUJO EN JAVA II
TEMA Nº 7: SENTENCIAS DE CONTROL DE FLUJO EN JAVA IIAnyeni Garay
 
6 java sesin 6 pps
6 java sesin 6 pps6 java sesin 6 pps
6 java sesin 6 ppsajplbe
 
Jmeter para Aplicaciones Web
Jmeter para Aplicaciones WebJmeter para Aplicaciones Web
Jmeter para Aplicaciones Webred.es
 
Tutorial programacion01
Tutorial programacion01Tutorial programacion01
Tutorial programacion01Jenny Zambrana
 

Similar a Cómo escribir pruebas unitarias en PHP con NetBeans y PHPUnit (20)

Tdd en java
Tdd en javaTdd en java
Tdd en java
 
Cesnavarra 2009-boletín 1
Cesnavarra 2009-boletín 1Cesnavarra 2009-boletín 1
Cesnavarra 2009-boletín 1
 
Qunit CookBook español
Qunit CookBook españolQunit CookBook español
Qunit CookBook español
 
Seminario de Test Development Driven
Seminario de Test Development DrivenSeminario de Test Development Driven
Seminario de Test Development Driven
 
Usando Netbeans para desarrollos en PHP
Usando Netbeans para desarrollos en PHPUsando Netbeans para desarrollos en PHP
Usando Netbeans para desarrollos en PHP
 
5-Unidad 1: Introducción a la Plataforma .NET-1.3 Aplicaciones en C# .NET-Int...
5-Unidad 1: Introducción a la Plataforma .NET-1.3 Aplicaciones en C# .NET-Int...5-Unidad 1: Introducción a la Plataforma .NET-1.3 Aplicaciones en C# .NET-Int...
5-Unidad 1: Introducción a la Plataforma .NET-1.3 Aplicaciones en C# .NET-Int...
 
Tutorial net beans
Tutorial net beansTutorial net beans
Tutorial net beans
 
Junit y Jmock
Junit y JmockJunit y Jmock
Junit y Jmock
 
Programación
ProgramaciónProgramación
Programación
 
Tdd
TddTdd
Tdd
 
Workshop iOS 3: Testing, protocolos y extensiones
Workshop iOS 3: Testing, protocolos y extensionesWorkshop iOS 3: Testing, protocolos y extensiones
Workshop iOS 3: Testing, protocolos y extensiones
 
5- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net
5- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net5- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net
5- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net
 
Ingenieria de sw Junit
Ingenieria de sw JunitIngenieria de sw Junit
Ingenieria de sw Junit
 
Visual studio 2010
Visual studio 2010Visual studio 2010
Visual studio 2010
 
Manual de netbeans_7(2)(2)(2)
Manual de netbeans_7(2)(2)(2)Manual de netbeans_7(2)(2)(2)
Manual de netbeans_7(2)(2)(2)
 
TEMA Nº 7: SENTENCIAS DE CONTROL DE FLUJO EN JAVA II
TEMA Nº 7: SENTENCIAS DE CONTROL DE FLUJO EN JAVA IITEMA Nº 7: SENTENCIAS DE CONTROL DE FLUJO EN JAVA II
TEMA Nº 7: SENTENCIAS DE CONTROL DE FLUJO EN JAVA II
 
6 java sesin 6 pps
6 java sesin 6 pps6 java sesin 6 pps
6 java sesin 6 pps
 
Presentación: xUnit y Junit
Presentación: xUnit y JunitPresentación: xUnit y Junit
Presentación: xUnit y Junit
 
Jmeter para Aplicaciones Web
Jmeter para Aplicaciones WebJmeter para Aplicaciones Web
Jmeter para Aplicaciones Web
 
Tutorial programacion01
Tutorial programacion01Tutorial programacion01
Tutorial programacion01
 

Cómo escribir pruebas unitarias en PHP con NetBeans y PHPUnit

  • 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