Configuración de PHP Unit y Composer para Proyectos PHP

Clase 15 de 19Curso de Programación Orientada a Objetos en PHP

Resumen

¿Cómo iniciar un proyecto con PHP Unit?

Iniciar un proyecto utilizando PHP Unit es un proceso emocionante que te permitirá explorar las capacidades de prueba en el contexto del desarrollo orientado a objetos. En este proyecto, comprenderás mejor no solo el uso de PHP Unit como tecnología, sino también el concepto de clases heredadas. A continuación, encontrarás un resumen de los pasos para configurar tu entorno y comenzar el testeo de tu aplicación en PHP.

¿Cómo configurar el archivo Composer?

Para arrancar, necesitas configurar el archivo Composer, que te ayudará a gestionar las dependencias de tu proyecto. Aquí tienes un ejemplo simple de cómo configurarlo:

  1. Asegúrate de que estás en el directorio correcto y ejecuta Composer.
  2. Añade la dependencia con el comando:
    composer require --dev phpunit/phpunit
    
  3. Define la estructura de tu proyecto en el archivo composer.json:
    {
      "name": "proveedor/proyecto",
      "description": "Proyecto de programación orientada a objetos",
      "autoload": {
        "psr-4": {
          "App\\": "src/"
        }
      }
    }
    
  4. Ejecuta el comando composer dump-autoload para registrar la información de autoload.

¿Cómo configurar XML para PHP Unit?

Una vez que hayas configurado Composer, el siguiente paso es preparar el archivo XML de configuración para PHP Unit. Aquí te muestro cómo hacerlo:

  1. Crea un archivo llamado phpunit.xml con la configuración básica:
    <?xml version="1.0" encoding="UTF-8" ?>
    <phpunit bootstrap="vendor/autoload.php" colors="true">
      <testsuite name="directorio de pruebas">
        <directory>tests</directory>
      </testsuite>
    </phpunit>
    
  2. Observa el uso de la línea de bootstrap, que asegura el autocarga cuando se ejecuten las pruebas.
  3. Añade un test suite definiendo el directorio donde se ubicarán los tests.

¿Cómo crear y estructurar un test en PHP Unit?

Ahora que tienes todas tus configuraciones listas, puedes comenzar a escribir tus tests. Aquí tienes una estructura básica para empezar:

  1. Crea una carpeta tests y dentro define clases de prueba, por ejemplo:

    use PHPUnit\Framework\TestCase;
    
    class PostTest extends TestCase
    {
        public function test_agregar_comentarios_al_post()
        {
            $post = new Post();
            $comentario = new Comentario();
            
            $post->agregarComentario($comentario);
    
            $this->assertEquals(1, $post->contarComentarios());
            $this->assertInstanceOf(Comentario::class, $post->comentarios[0]);
        }
    }
    
  2. La clase de prueba extiende TestCase. Este es un paso fundamental para poder realizar las pruebas correctamente.

  3. Define métodos de prueba comenzando con test, lo que hace que las pruebas sean reconocidas por PHP Unit.

  4. Usa aserciones para validar el comportamiento de tu código, como assertEquals y assertInstanceOf.

¿Qué papel juegan las pruebas en el desarrollo TDD?

El legado del desarrollo guiado por pruebas, o TDD, es crucial para escribir mejor código. Siguiendo esta metodología, desarrollas de acuerdo a las necesidades y errores que señalen las pruebas, avanzando desde tests fallidos que guían la implementación adecuada del código.

Con PHP Unit y TDD, la lógica es sencilla: primero escribes las pruebas, luego compilas el código que solucionará esos tests fallidos, transformando los errores rojos en éxitos verdes. Así, tu proyecto no solo mejora en calidad, sino que también asegura veracidad y funcionalidad a lo largo del tiempo.

Continúa afianzando estos conceptos y pronto verás cómo la calidad de tus aplicaciones mejora significativamente. ¡Sigue adelante!