TDD en PHP : Utilizando PHPUnit sin dolores!

Porque durante un proyecto tenemos que tener presente que su calidad no es una etapa más, sino una fase de desenvolvimiento. Es ahí que aparece el concepto de Test Driven Development (TDD : Desarrollo guiado por pruebas); hoy en día muy difundido y utilizado por desarrolladores competentes y quiero que usted sepa utilizar una de las herramientas más conocidas para ese objetivo como es el PHPUnit.
Compartir:

Usando PHPUnit con Un Ejemplo Básico

En esta oportunidad muestro para ustedes el uso básico de PHPUnit, una herramienta de tests considerada hoy en día como la más usada por los programadores, gracias a su fácil uso. Comencemos!

Primer Paso: Descargando PHPUnit
  • Para comenzar pues les muestro el link de descarga de esta poderosa herramienta:


  • Realizada la descarga veremos que es un archivo llamado "phpunit-*.*.*.phar". Como hemos notado tiene la extensión phar , eso quiere decir que es un archivo PHP ejecutable. Pero como haremos para proceder a utilizarlo?
  Segundo Paso: Instalando PHPUnit
  • Creamos en nuestro disco C, D o el que tengamos disponible, una carpeta llamada "bin", que será la que alojará nuestro archivo de "phpunit-*.*.*.phar" que anteriormente descargamos!

  • Ahora  Procederemos a Cambiar de nombre a nuestro archivo y dejémoslo como "phpunit.phar", veamos:

  • Ahora dejaremos a nuestro Sistema Operativo reconocer a nuestra Herramienta, ¿Cómo?, pues añadiéndola a las variables de entorno!
    • Primero pues vamos a nuestro explorador de Disco,
      • En Windows: con los botones Windows + E
    • Hacemos click derecho en el símbolo que contiene un computador que será pues el simbolo de nuestro sistema y seleccionamos "Propiedades"
  • Ahora nos mostrará una ventana como la que sigue donde debemos clicar en "Configuraciones Avanzadas del Sistema", tal como nos muestra la siguiente figura:

  • Ahora Tendremos el siguiente ambiente donde procederemos a hacer click en "Variables de Entorno"
 
  • Ahora pues nos deparamos con esta ventana y en las Variables de Sistema, buscamos PATH y clicamos en "Editar", como muestra la figura.

  • Ahora sí es el momento donde procederemos a colocar el camino o ruta hacia nuestro archivo "PHPUnit.phar"; que para este caso será:

C:\bin

  • Concluímos este proceso, presionando en OK y luego pues, habremos realizado con suceso el proceso de instalación de nuestro PHPUnit en nuestro Sistema Operativo!
Tercer Paso: Confirmando Instalación PHPUnit

  • Para confirmar que hemos instalado de manera correcta nuestra herramienta PHPUnit, procedemos a abrir nuestra consola de comandos:

  • Estando en nuestro Prompt de comandos o Consola, pues escribiremos la siguiente línea de comandos que le dirá a nuestro sistema que muestre en pantalla la versión de nuestro PHPUnit instalada!

phpunit --version

  •  Realizado esto, habremos conseguido confirmar la instalación del PHPUnit en nuestro Sistema con lo que procederemos a seguir el siguiente paso:

Cuarto Paso: Creando Nuestra Class Carro para Test
  • Para este ejemplo, crearemos una class simple llamada Carro, con un atributo y sus métodos get() y set(), veamos:
Archivo : Carro.php

<?php
/**
 * Created by PhpStorm.
 * User: Miguel
 * Date: 14/03/2017
 * Time: 14:58
 */
class Carro
{
    private $colorCarro;

    public function setColor($color)
    {
        $this->colorCarro = $color;
    }
    public function getColor()
    {
        return $this->colorCarro;
    }
}

  • Como podemos apreciar en el código anterior: La Class Carro tiene un atributo que corresponde al color que pueda tener este Carro ($colorCarro); y luego pues sus métodos setColor() y getColor()
    • Esta Class Carro es la que usaremos como ejemplo para hacer un Test con la Herramienta PHPUnit:

Quinto Paso: Creando Nuestra Class CarroTest
  • Ahora es el momento de crear nuestra Class CarroTest que como su nombre lo dice es la Class que realizará mediante el PHPUnit, el test de nuestra Class Carro!
Archivo : CarroTest.php

<?php
/**
*@class CarroTest
**/
require ('Carro.php');
use PHPUnit\Framework\TestCase;
class Framework_TestCarroTest extends TestCase
{
    public function testColor()
    {
        $carro = new Carro();
        $carro->setColor("Azul");
        $this->assertEquals("Azul",$carro->getColor());
    }

}

  • Note 2 cosas en el código anterior :
    • require: que es la declaración que hará que se incluya en este archivo 'CarroTest.php' al archivo 'Carro.php'. Pues lo necesitaremos para acceder a la class Carro que será testada!
    • use PHPUnit\Framework\TestCase; : eso indica que estamos 'use' usando el camino o ruta que llevará a la class TestCase que será la encargada de realizar los testes necesários para este tipo de class.
    • Framework_testCarroTest: Como podemos ver aquí hemos antepuesto Framework_test a la class CarroTest, eso lo hacemos pues para facilitar el trabajo a PHPUnit e indicarle que ese es el nombre de la class que será testada.
    • extends TestCase: Con extends hacemos que la class CarroTest herede los métodos públicos y protegidos de la TestCase que es la encargada de realizar el test de nuestra class Carro, el uso de extends estaremos viéndolo en un capítulo posterior!
 Sexto Paso: Utilizando nuestra Consola para realizar nuestro Test Unitario con PHPUnit
  • Abrimos nuestra Consola para dirigirnos hasta la carpeta que aloja nuestros 2 archivos creados:
    • Para este Ejemplo, he guardado estos dos archivos en la carpeta "TestesPHPUnit" creada en el desktop ó escritorio de mi Sistema Operativo, veamos:

  • Entrando a la carpeta que aloja nuestros archivos creados desde la consola:

  •  Habiendo accedido desde la consola a nuestra carpeta contenedora, pues haremos correr la siguiente línea de comandos:

phpunit CarroTeste.php

  •  Si todo ha sido codificado de la forma indicada podremos encontrarnos con el ambiente indicado en esta figura.
    • Lo que nos dice PHPUnit es que se ha realizado un Test y se ha generado un acierto, todo esta OK al 100%: OK (1 test,1 assertion).
Con esto habremos culminado un artículo donde muestro la actuación de una herramienta importante para nuestros proyectos Web con PHP, como es el PHPUnit. Una manera bastante fácil de aprender y con un ejemplo básico para entender más rápidamente su funcionamiento!.
Compartir:
Localización Gov. Celso Ramos, SC, Brasil

Aplicativo PHP

Framework

PHPUnit

TDD

Testes PHP

Déjenos su Comentário:

2 comments:

  1. Respuestas
    1. Muchísimas gracias Fernando; comentarios como el tuyo, motivan a seguir trabajando y compartiendo!, un abrazo desde Brasil!

      Borrar