¿Por qué las pruebas en PHP no dan miedo, sino que son útiles?
\n\nImagina: escribiste un script en PHP, funciona. Te alegras. Una semana después necesitas agregar una nueva función. Cambias un par de líneas y, de repente, todo se rompe. ¿Te suena familiar? Si es así, necesitas conocer urgentemente las pruebas de PHP. No es magia, sino un conjunto de herramientas que salvarán tu proyecto del caos.
\n\nMuchos desarrolladores principiantes temen a las pruebas. Parece que son difíciles, aburridas y consumen tiempo. En realidad, las pruebas unitarias de PHP son como un seguro: pagas un poco ahora para no perderlo todo después. En este artículo, analizaremos por dónde empezar con las pruebas de PHP para un principiante, qué herramientas usar y cómo escribir tu primera prueba sin volverte loco.
\n\n¿Qué son las pruebas y para qué sirven?
\n\nLas pruebas de código son el proceso de verificar que tu programa hace exactamente lo que esperas. En lugar de abrir el navegador manualmente cada vez y hacer clic en enlaces, escribes scripts especiales (pruebas) que lo hacen por ti.
\n\nPrincipales ventajas:
\n- \n
- Confianza en el código. Sabes con certeza que después de los cambios nada se romperá. \n
- Ahorro de tiempo. La verificación automática es más rápida que la manual. \n
- Documentación. Las pruebas muestran cómo debe funcionar tu código. \n
- Simplificación de la refactorización. Puedes reescribir el código con tranquilidad si las pruebas pasan. \n
La herramienta más popular para pruebas de PHP es PHPUnit. Es el estándar de facto en el mundo PHP. Con ella trabajaremos.
\n\nInstalación de PHPUnit: dos formas sencillas
\n\nAntes de escribir pruebas, necesitas instalar PHPUnit. Hay dos caminos principales.
\n\nForma 1: Composer (recomendada)
\n\nSi ya usas Composer (y deberías, es el gestor de dependencias para PHP), es muy sencillo. Abre la terminal en la raíz de tu proyecto y ejecuta:
\n\ncomposer require --dev phpunit/phpunit ^10\n\nLa bandera --dev significa que PHPUnit se instalará solo para desarrollo y no irá al servidor de producción.
Forma 2: Archivo PHAR
\n\nSi Composer no es tu opción, puedes descargar PHPUnit como un solo archivo:
\n\nwget https://phar.phpunit.de/phpunit.phar\nchmod +x phpunit.phar\nsudo mv phpunit.phar /usr/local/bin/phpunit\n\nDespués de esto, el comando phpunit --version debería mostrar la versión.
Primera prueba: escribir y ejecutar
\n\nAhora viene lo interesante. Crearemos una clase simple y escribiremos una prueba para ella. Supongamos que tenemos una función que suma dos números.
\n\nPaso 1. Código a probar
\n\nCrea el archivo src/Calculator.php:
<?php\n\nnamespace App;\n\nclass Calculator\n{\n public function add(float $a, float $b): float\n {\n return $a + $b;\n }\n}\n\nPaso 2. Prueba para esta clase
\n\nPHPUnit sigue la convención: las pruebas se almacenan en el directorio tests/ y el nombre del archivo de prueba coincide con el nombre de la clase con el sufijo Test. Crea tests/CalculatorTest.php:
<?php\n\nnamespace Tests;\n\nuse App\\Calculator;\nuse PHPUnit\\Framework\\TestCase;\n\nclass CalculatorTest extends TestCase\n{\n public function testAdd()\n {\n $calculator = new Calculator();\n $result = $calculator->add(2, 3);\n $this->assertEquals(5, $result);\n }\n}\n\n¿Qué sucede aquí?
\n- \n
- Heredamos de
TestCase— la clase base de PHPUnit. \n - El método
testAddes nuestra prueba. PHPUnit ejecuta automáticamente todos los métodos que comienzan contest. \n $this->assertEquals()es una assert (afirmación). Verifica