¿Qué es Pest y para qué sirve?
\nPest es un framework de pruebas moderno y elegante para el lenguaje PHP, creado por Nuno Maduro en 2021. A diferencia de soluciones tradicionales como PHPUnit, Pest ofrece una sintaxis más concisa y expresiva, inspirada en Jest (JavaScript) y RSpec (Ruby). Si PHPUnit es una "navaja suiza" para pruebas, Pest es un "bisturí" que permite escribir pruebas más rápido, de forma más limpia y con menos código repetitivo.
\nEl objetivo principal de Pest es hacer que el proceso de escribir pruebas sea lo más agradable e intuitivo posible. En lugar de clases y métodos con nombres largos, se utilizan closures y una interfaz fluida (fluent interface). Esto es especialmente útil para proyectos donde la velocidad de desarrollo y la legibilidad del código son importantes, como en startups, servicios API o al trabajar en equipo donde las pruebas no solo las escriben ingenieros de QA, sino también desarrolladores.
\nVentajas clave de Pest sobre PHPUnit:
\n- \n
- Concisión: Menos código para escribir la misma prueba. \n
- Legibilidad: Las pruebas parecen lenguaje natural (por ejemplo,
expect($result)->toBeTrue()). \n - Funciones integradas:
beforeEach(),afterEach(),todo()y otras. \n - Arquitectura: No requiere herencia obligatoria de
TestCase. \n - Ecosistema: Plugins para Laravel, Livewire, Mockery y otras herramientas populares. \n
Instalación de Pest
\nPest se instala a través de Composer, el gestor de paquetes estándar para PHP. Asegúrate de tener instalado PHP versión 8.0 o superior.
\nCrea un nuevo proyecto o ve al directorio raíz de un proyecto existente:
\nmkdir my-pest-project\ncd my-pest-project\ncomposer init --yes\nInstala Pest como dependencia de desarrollo (dev):
\ncomposer require pestphp/pest --dev\nDespués de la instalación, inicializa Pest en tu proyecto:
\n./vendor/bin/pest --init\nEste comando creará la estructura básica:
\n- \n
tests/— directorio para las pruebas. \n tests/Pest.php— archivo con configuraciones globales (por ejemplo,uses()). \n phpunit.xml— archivo de configuración (Pest funciona sobre PHPUnit). \n
Ahora puedes ejecutar las pruebas:
\n./vendor/bin/pest\nSi usas Laravel, instala el paquete adicional para una mejor integración:
\ncomposer require pestphp/pest-plugin-laravel --dev\n\nInicio rápido con un ejemplo de código
\nCrea el archivo tests/ExampleTest.php:
<?php\n\ntest('basic assertion', function () {\n $result = 1 + 1;\n expect($result)->toBe(2);\n});\nEjecuta las pruebas:
\n./vendor/bin/pest\nVerás una salida verde con el mensaje PASS Tests\\ExampleTest. Observa que no usamos clases, métodos con anotaciones ni herencia. Simplemente la función test() y un closure. Esto es lo que se llama "pruebas modernas".
Sintaxis alternativa usando la palabra clave it (más legible para describir comportamiento):
it('performs basic addition', function () {\n $sum = 2 + 3;\n expect($sum)->toEqual(5);\n});\n\nMétodos y funciones principales de Pest
\nA continuación se presentan 10 métodos y funciones clave de Pest con descripción detallada y ejemplos.
\n\n1. test() — definición de prueba
\nQué hace: Crea una nueva prueba. Es la función principal para definir un escenario de prueba.
\nParámetros:
\n- \n
string $description— descripción de la prueba (se muestra en la consola). \n callabl\n