Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / PHP / Pruebas Unitarias con PHPUnit

Pruebas Unitarias con PHPUnit

Por jc mouse jueves, octubre 26, 2017

PHPUnit es un framework que se utiliza para escribir tests en PHP, Netbeans nos permite configurarlo y usarlo fácilmente, en este post mostraremos un ejemplo desde su configuración hasta su ejecución, el código de prueba se basara en este post [Caja blanca: Prueba del camino básico], para entender de donde vienen el algoritmo y sus casos de prueba, recomiendo leerlo.

Necesitamos:

Paso 1: Configuración General

Al instalar XAMPP este ya trae consigo PHPUnit pero no phpunit-skelgen, entonces descargar phpunit-skelgen, y coloca el archivo en la dirección X:\xampp\php\

Abre Netbeans y ve al menu Herramientas -> Opciones, clic en la pestaña PHP.

Clic en la pestaña Framework & Tools, busca y selecciona la opción PHPUnit.

Netbeans detecta automáticamente las librerías de PHPUnit y estas deberían estar visibles en esa ventana, pero si no, con el botón «Browse…» busca y selecciona los archivos necesarios tal como se ve en la imagen de abajo

Unit IDE

Presiona «aceptar» para guardar los cambios

Paso 2: Configurar el proyecto en PHP

Crea un nuevo proyecto llamado «MiTestPHP» y añade una clase que llamaremos «MiClase.php»

example php

A continuación clic derecho sobre el proyecto y elegimos «propiedades» (properties), busca la opción «Testing«, activa la opción «PHPUnit» y añade una carpeta con el nombre «Test Files» , para terminar presiona «Aceptar»

Propiedades de proyecto

Paso 3: Código de prueba

El código de prueba corresponde al algoritmo para detectar el numero mayor de 3 números enteros dados.

codex

Anotación @assert:

La anotación assert nos permite indicar los casos de pruebas para el testing y sus resultados esperados, su estructura es la siguiente:

assert

Entonces usando esa anotación debemos indicar los «n» casos que deseamos probar para nuestro método que en esta oportunidad son 4:

annotation asert

Paso 4: Clase de Prueba

Ahora que tenemos listo nuestro código de prueba, debemos generar una clase para su testeo, para esto, clic derecho sobre la clase «MiClase» -> Herramientas -> Create/Update Test, en la ventana que aparece solo presionamos «ok»

herramientas

Se genera una nueva clase donde se genera un método de prueba por casa caso indicado con la anotación @assert

prueba unitaria

Por ejemplo:

mayonesa

Antes de ejecutar la prueba, al principio de la clase debemos escribir:

require ‘../MiClase.php’;

hacemos esto porque ambas clases se encuentran en directorios diferentes, guarda los cambios.

Paso 5: Ejecución de la prueba

Ahora que ya tenemos todo configurado, clic derecho sobre la clase «MiClase» -> Tests o presiona Ctrl + F6

PHPUnit test example

enjoy!!!

Tags

Artículos similares

Crear un plugin wordpress «Banned Word»

En este post, escribiremos un sencillo plugin para wordpress el cual consistirá en reemplazar palabras en los comentario[...]

Ejemplo socket java Cliente/Servidor

En este post construiremos un sencillo sistema Cliente/Servidor en lenguaje Java, el sistema consistirá básicamente en u[...]

Alda: Lenguaje de programación para composición musical

Alda es un lenguaje de programación desarrollado por Dave Yarwood el cual esta basado en texto para composición musical,[...]

Material Design: CardView (Tarjetas)

Un CardView es parte de los estilos de Material Design y nos permite mostrar información dentro de tarjetas (Card), esta[...]

Ejemplo de uso de ProgressDialog

Un ProgressDialog muestra una ventana con un texto y una barra de progreso que indica el tiempo que tarda una tarea en r[...]

Personalizar JTable: Problema resuelto

En este post se da respuesta a una pregunta realizada por facebook. El problema dice así: Se quiere personalizar un JTab[...]