Instalación y ejemplo de phpUnit en Sublime Text

Aprende a instalar phpUnit en sublime text y crea tu primer script de pruebas con los ejemplos disponibles.

librerias php phpUnit

¿Para qué sirve PHPUnit?

PHPUnit es un framework para programar pruebas de código. Esto quiere decir que podremos probar nuestros scripts y detectar errores que se nos hayan pasado por alto.

Imagínate que tenemos una Clase de php que tiene una función toString(). Podríamos hacer un código de test con PHPUnit para probar si el toString() muestra la información correcta. ¿No te parece útil? Aunque puedes pensar que para desarrollos pequeños puede ser innecesario, PHPUnit se vuelve vitar cuando se trabaja en grandes aplicaciones donde se suele realizar una fase de pruebas antes de dar el OK a la aplicación.

Instalación de PHPUnit en Windows

Antes de poder lanzarnos a explorar las posibilidades de PHPUnit y ver un ejemplo, debemos centrarnos en la instalación para su correcto funcionamiento.

1. Crear carpeta contenedora

Para poder hacer funcionar PHPUnit, necesitamos añadir a la variable de entorno PATH la ruta a un fichero con todo lo requerido por PHPUnit. Por lo tanto lo primero que haremos será crearnos un nuevo directorio donde guardaremos los ficheros. Por ejemplo C:\bin

2.Editar variable de entorno PATH

En segundo lugar tendremos que añadir la carpeta anterior a la variable PATH de entorno del sistema. Buscamos en el sistema la configuración de variables de entorno, podemos hacerlo de dos formas en windows: 

2.1.1 OPCION 1: Variables de entorno Windows 8 o 10

En windows 8 o 10 podemos pinchar en el botón de inicio, y escribir directamente "variables de entorno". Nos aparecerá una opcion que dirá "Editar las variables de entorno del sistema".

2.1.2 OPCION 2: Variables de entorno desde Equipo. Windows 7, 8 o 10

En windows 7, 8 o 10 le damos click derecho en Equipo y accedemos a Propiedades, en la ventana que se abre le damos a Configuración avanzada del sistema y pinchamos en la opción "Variables de entorno..."

2.2 Edición variable de entorno PATH

Una vez en el menu de Variables de entorno nos fijaremos en el cuadro de opciones de Variables del sistema, buscamos haciendo scroll la opción "Path" y pinchamos en editar.

3. Añadir nueva ruta a la variable PATH

Ahora podremos ver todas las rutas de ficheros accesibles por la variable Path, clicamos en Nuevo y escribimos el directorio que hemos creado con anterioridad: "C:\bin".

4. Añadir ruta de instalación php a PATH

Antes de terminar de editar la variable Path añadiremos la ruta de la instalación php. Para Wamp normalmente C:\wamp\bin\php\php5.6.15 y en xampp C:\xampp\php

5. Descarga e instalación de PHPUnit

Ya tenemos añadidas las rutas necesarias para la ejecución del comando php en el CMD, y lista la carpeta "bin" para añadir el fichero de PHPUnit. Antes de continuar os recomiendo reiniciar el pc para que los cambios estén correctamente operativos. A continuación debemos de descargar y terminar de instalar la librería de PHPUnit:

  1. Descargamos el fichero de PHPUnit.phar de https://phar.phpunit.de/phpunit.phar y lo introducimos en la carpeta C:\bin creada con anterioridad.
  2. Le cambiamos el nombre al fichero por phpunit.phar
  3. Abrimos la línea de comandos de Windows (CMD) y tecleamos: 
    1. cd C:\bin
    2. echo  @php "%~dp0phpunit.phar" %* > phpunit.cmd
    3. exit
  4. Probamos que todo ha ido conforme abriendo de nuevo la ventana CMD y escribiendo phpunit --versionSi sale un mensaje con la versión de PHPUnit instalada todo está correcto, en caso contrario probar a reiniciar y volver a escribir el comando phpunit --version.

Usar phpunit en sublime text

El uso del framework PHPUnit en Sublime Text pasa por la instalación del paquete PHPUnit mediante packageControl.

Si no tienes instalado packageControl en tu instalación de Sublime Text sigue los siguientes pasos:

  1. Descarga package Control del siguiente enlace:  Package Control.sublime-package
  2. Haz clic en Preferences > Browse Packages
  3. En la carpeta User añade el fichero descargado
  4. Reinicia sublime text y listo.

Una vez instalado packageControl vamos a ver como añadir el paquete de PHPUnit:

  1. Vamos a preferences de Sublime Text y le damos a package control.
  2. En las opciones de package control seleccionamos Install Package.
  3. Escribimos PHPUnit y seleccionamos el primer paquete que nos aparece. Se instalará en unos instantes, cerramos Sublime Text para que se lleven a cabo los cambios y al volver a abrirlo estará listo para su uso. Podemos comprobarlo haciendo clic derecho sobre la zona de programación y observando que nos aparecen distintas opciones relacionadas con el framework.

Como se usa PHPUnit

Usar PHPUnit es fácil, lo primero que tenemos que hacer es en nuestra carpeta de trabajo, crearnos un fichero .xml llamado phpunit.xml con el siguiente contenido:

Este archivo sirve para decirle a PHPUnit dónde tendremos nuestro código para ejecutar los testDonde dice directory tendremos que poner el directorio de los test./test/ significa que voy a guardar los archivos de código para los test en esa carpeta, en el directorio raíz de mi proyecto.

Ahora vamos a ver como hacer nuestro primer Test con PHPUnit:

1. Creación de clase de prueba Animal.php

Creamos un fichero que se llamara Animal.php en la carpeta raíz de trabajo. Y dentro creamos la clase Animal:

<?php
class Animal{
   private $subgrupo;
   private $especie;
   private $alimentacion;
   private $edad;
   public function __construct($subgrupo, $especie, $alimentacion, $edad){
      $this->subgrupo=$subgrupo;
      $this->especie=$especie;
      $this->alimentacion=$alimentacion;
      $this->edad=$edad;
   }
   public function sonido(){
      return 'Muu';
   }
}
?>

2. Creación de la clase Test

Ahora nos vamos a la carpeta Test, y creamos ahí un fichero que se llame AnimalTest.php. Dentro del fichero escribimos el código de una clase con nuestro primer test:

<?php
require_once('Animal.php');
class AnimalTest extends PHPUnit_Framework_TestCase
{
     public function testCanInstatiate(){
        $animal = new Animal('', '', '', 11);
        $this->assertEquals($animal->sonido(), 'Muuu');
     }
}
?>

El código de esta clase crea un objeto de clase Animal y, utilizando el método de PHPUnit heredado “assertEquals” para comparar el resultado del método sonido() con un texto de prueba.

3. Ejecutar el test creado

Para probar nuestro test, nos vamos al fichero .xml y le damos a click derecho, PHPUnit y Run Using This Xml File.

Se nos abrirá una ventana en la parte de debajo de sublime text con el resultado del test.

En el caso de nuestra prueba nos dice que ha hecho un test (Tests:1) y con 1 fallo (Failures: 1). También nos indica con el símbolo “-“ lo que se ha mostrado por pantalla, y con el símbolo “+” el texto que se esperaba.

Extra: Convenciones e Información extendida

PHPUnit tiene un par de convenciones que nos ayudan a organizar nuestro código de forma óptima:

  • El nombre de cada Clase de pruebas debe ser igual al nombre del archivo a probar, pero con la palabra Test al final. En el ejemplo AnimalTest
  • También el nombre de la clase debe ser igual al nombre del archivo, como cualquier otra clase, así que esta es muy sencilla. La clase Animal está en un fichero llamado Animal.php y la clase AnimalTest en un fichero nombrado como AnimalTest.php

El ejemplo que he explicado aquí es una pequeña muestra de lo que puede hacer PHPUnit. Este framework dispone de muchísimas más posibilidades, si quieres verlas por ti mismo e ir aprendiendo más te recomiendo que visites su web: Documentación PHPUnit

Sobre el autor

Javier Gómez Redactor en Srcodigofuente.es

Javier Gómez

Ingeniero técnico en informática de gestión. Desarrollador web freelance y profesor de desarrollo web a partes iguales. Testarudo autodidacta, creativo, perfeccionista y alma libre.

Cargando comentarios

Utilizamos "cookies" para información estadística. Si continúas navegando aceptas su uso.