Creación de Proyectos PHP con Composer y PHPUnit

Clase 6 de 16Curso de Manejo de Datos en PHP

Resumen

¿Cómo empezar un proyecto en PHP utilizando Composer y PHPUnit?

Iniciar un proyecto en PHP utilizando herramientas como Composer y PHPUnit no solo es esencial para quienes desean adentrarse en el desarrollo de proyectos reales, sino que también permite estructurar de manera óptima nuestro código, facilitar el mantenimiento y asegurar un mejor rendimiento. A través de esta guía, aprenderás a llevar a cabo un proyecto de validación en PHP desde cero, comprendiendo la lógica detrás de cada configuración y paso.

¿Cómo instalar y configurar PHPUnit?

Primero, es crucial instalar PHPUnit, un framework de pruebas para PHP que permite realizar pruebas unitarias. La instalación se realiza a través del gestor de dependencias Composer. Aquí te mostramos los pasos necesarios:

  1. Ejecuta el comando en la terminal: Escribe el siguiente comando para requerir la instalación de PHPUnit:

    composer require phpunit/phpunit
    

    Este proceso descarga y configura automáticamente los componentes necesarios.

  2. Verifica la creación de archivos: Al finalizar la instalación, Composer genera archivos esenciales como composer.json y composer.lock, y crea una carpeta llamada vendor.

  3. Configura el Autoload: Modifica el archivo composer.json para añadir el autoload para tu espacio de nombres:

    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    }
    

    Ejecuta composer dump-autoload para aplicar los cambios.

¿Cómo crear y configurar el archivo XML para pruebas?

El siguiente paso es crear un archivo de configuración XML para PHPUnit. Este archivo define cómo se ejecutarán las pruebas. A continuación, te mostramos la estructura básica del archivo phpunit.xml:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="vendor/autoload.php" colors="true">
    <testsuite name="PruebasUnitarias">
        <directory>./tests</directory>
    </testsuite>
</phpunit>
  • El atributo bootstrap indica dónde encontrar el autoload.
  • colors permite mostrar resultados en pantalla a color para mejor visualización.
  • Dentro de <testsuite>, se define el nombre del conjunto de pruebas y el directorio donde se almacenarán los tests.

¿Cómo crear tu primera prueba unitaria?

Ahora que todo está configurado, es momento de crear nuestra primera prueba. Las pruebas unitarias en PHPUnit deben residir en una clase que termine con la palabra Test, siguiendo un estándar que facilita su identificación.

  1. Crea una carpeta para pruebas: Dentro del directorio raíz del proyecto, crea una carpeta llamada tests.

  2. Escribe tu primer test: Vamos a crear un archivo ValidacionTest.php dentro de la carpeta tests:

    use PHPUnit\Framework\TestCase;
    
    class ValidacionTest extends TestCase
    {
        public function testEmailValidacion()
        {
            $email = 'test@example.com';
            $result = App\Validacion::email($email);
            $this->assertTrue($result);
        }
    }
    

    Aquí, estamos probando que el método de validación de email retorne true para un correo correctamente formado.

  3. Ejecución de pruebas: Una vez creados tus tests, ejecuta el siguiente comando para correr las pruebas:

    ./vendor/bin/phpunit
    

¿Cómo garantizar la eficacia de nuestro sistema de pruebas?

Es importante siempre revisar nuestras pruebas con diferentes casos para asegurarnos de que cubren todos los escenarios posibles:

  • Casos de éxito y fracaso:

    • Verifica que un correo válido como test@example.com pase la prueba.
    • Asegura que un correo inválido como test@@example..com falle.
  • Refactoriza según las necesidades del proyecto: A medida que tu proyecto crezca, asegúrate de que todas las nuevas funciones tienen tests asociados para mantener la calidad del código.

A través de estas configuraciones y prácticas, no solo estarás realizando un seguimiento constante sobre el correcto funcionamiento de tus métodos, sino que estarás construyendo proyectos robustos y profesionales listos para cualquier implementación en el mundo laboral. ¡Sigue experimentando y aprendiendo!