Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

Testing de Proyectos Laravel con PHPUnit y Artisan

3/24
Recursos

¿Cómo instalar un nuevo proyecto Laravel y preparar el entorno de PHP Unit?

Crear un entorno de desarrollo adecuado es fundamental para garantizar una buena experiencia al trabajar con Laravel y PHP Unit. En esta clase, te guiaré a través de la instalación de un nuevo proyecto de Laravel y cómo poner en marcha lo que necesitas para pruebas con PHP Unit.

Para comenzar, primero debemos crear un nuevo proyecto de Laravel. Utilizando la terminal, navega hasta la carpeta donde deseas situar tus proyectos. Una vez allí, ejecuta el siguiente comando:

laravel new ProyectoPHPUnit

Esto creará un nuevo proyecto llamado "ProyectoPHPUnit" donde podrás practicar todos los conceptos relacionados con PHP Unit.

¿Cómo conectar el proyecto con tu editor de código?

Conectar correctamente el proyecto a tu editor de texto es esencial para explorar y modificar las carpetas y archivos del mismo. Para ello, sigue estos pasos:

  1. Abre tu editor.
  2. Haz clic en "Open Folder".
  3. Selecciona la carpeta del proyecto.
  4. Haz clic en "Open".

Una vez abierto el proyecto, puedes ver diversas carpetas como "http", "modelos", "configuración", "base de datos", "archivos públicos", "vistas", "rutas" y la carpeta "testing".

¿Qué hay dentro de la carpeta testing y cuál es su funcionalidad?

Laravel facilita mucho la configuración inicial, pues desde el comienzo, ya viene con una estructura básica para las pruebas unitarias. Dentro de la carpeta "testing", verás los siguientes componentes clave:

  • phpunit.xml: Archivo de configuración para PHP Unit que define cómo se ejecutarán las pruebas.
  • Carpetas ejemplo: Incluyen ejemplos de tests que verifican estados HTTP, algo previamente aprendido en el curso de APIs.
  • Archivos de prueba: Dentro de estas carpetas se desarrollan las pruebas unitarias.

Por ejemplo, un archivo de prueba podría contener lo siguiente:

public function testBasic()
{
    $response = $this->get('/home');
    $response->assertStatus(200);
}

Este test verifica que cuando se accede a la ruta "/home", el sistema retorna un estatus HTTP 200.

¿Cómo ejecutar comandos para probar el proyecto?

Los comandos son una parte vital del proceso de testing. Después de conectar tu proyecto, puedes ejecutar las pruebas unitarias desde la terminal escribiendo:

vendor/bin/phpunit

Este comando se conecta a tus archivos de prueba y reporta el número de tests realizados y las afirmaciones verificadas. Por ejemplo, si un método verifica que true es igual a true, eso constituye una afirmación.

¿Cómo estandarizar los nombres de archivo y métodos de test?

Para evitar confusiones, es importante seguir un estándar de nomenclatura:

  • Los archivos de prueba deben terminar con la palabra Test, por ejemplo, UserTest.php.
  • Los métodos de prueba deben comenzar con "test", seguido del nombre descriptivo. Como "testBasic", garantizando así su correcta ejecución.

Adicionalmente, puedes usar comandos de Laravel para probar:

php artisan test

Este comando utiliza una estructura propia de Laravel, mostrando otra forma de ejecutar tests.

Al practicar y habituarte a estos conceptos, desarrollas no solo buenas prácticas sino confianza en el uso de herramientas esenciales como Laravel y PHP Unit. ¡Sigue adelante y explora!

Aportes 13

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

De hecho, esto es algo que me gusta de Laravel, porque no solo se limitan a usar librerías de terceros, sino que también las modifican, se nota la diferencia entre usar vendor/bin/phpunit y usar php artisan test, Laravel te lo pinta de una mejor forma y es por eso que debemos usar siempre el comando de artisan con Laravel, de esa forma es mucho más fácil y cómodo trabajar con los tests, así que no uses el comando vendor/bin/phpunit cuando estás trabajando con Laravel 👀

En Windows, utilizar el siguiente comando

php vendor/phpunit/phpunit/phpunit

PHPUnit en Laravel


Laravel al instalarlo trae PHPUnit configurado dentro de la carpeta 📁test encontrarás dos carpetas Unit (Donde tenemos pruebas unitarias) y Features (Donde tendremos las pruebas de pedazos de código grandes).

Para correr las pruebas, podemos utilizar el comando:

vendor/bin/phpunit

O podemos utilizar el comando que trae Artisan donde nos muestra mucho más estilizado el resultado.

php artisan test

Un pequeño truco que pueden hacer para no estar escribiendo siempre el comando de php artisan test es agregarlo como un script en el package.json de esta forma:

"scripts": {
	... otros scripts,
	"test": "php artisan test"
}

así cada vez que quieran correr los test escriben npm test y este llamará al comando de php artisan test, es más corto y ahorra tiempo 😄

Hay un estándar para crear test por ejemplo si basamos el test en el modelo User el test seria:
UserTest.php
Y para las funciones de test siempre comienzan con test:
testBasicTest(){}

El Laravel el directorio test/ trae 2 directorios

  • Feature
  • Unit

Unit (Pruebas Unitarias)

Son pruebas unitarias que se centran en un porción muy pequeña y aislada de su código y se ubican dentro del directorio test/Unit.

Las Pruebas Unitarias no inician la aplicación Laravel y por lo tanto no pueden acceder a la base de datos u otros servicios del Framework.

Feature (Pruebas de Funcionalidad)

Las pruebas de funciones pueden probar una porción mas grande de su código, incluida la forma en que varios objetos interactúan entre si o incluso una solicitud HTTP Completa.

buena clase, funciono a la primera. lo digo porque en una ocasion intente phpunit en un desarrollo nativo y era muy complicada la config para testear

Deje creando el proyecto desde la primera clase y ya no tuve que ponerle pausa a éste jajaja

Si le puede generar error el poner en la consola vendor/bin/phpunit. Puedes usar el comando php artisan test

composer create-project laravel/laravel phpunit

¡Que completo que es Laravel!

Parece que vendor/bin/phpunit tiene mejor rendimiento.

Tengo el siguiente error y no se como solventarlo.
“Exception
The Mix manifest does not exist. (View: /home/vagrant/code/j_inertia_8/resources/views/app.blade.php)”

El manifiesto Mix no existe: problema de inicio de sesión / registro de Laravel Fortify Jetstream al implementar laravel en el alojamiento compartido de Hostgator

He podido implementar proyectos de Laravel con éxito en el pasado. Por primera vez estoy usando Laravel 8 con Jetstream y Livewire. Laravel.

Mi servidor local funciona perfectamente, sin problemas. Después de implementar el proyecto en una cuenta de alojamiento compartido; mi página de inicio no se carga correctamente y envia el siguiente error “The Mix manifest does not exist. (View: /home/vagrant/code/j_inertia_8/resources/views/app.blade.php)”

He hecho lo siguiente:

  1. Versión del compositor actualizada
  2. reconstrucción de npm
  3. instalación de npm
  4. Probé ambos: npm run dev y npm run production y volví a cargar todo en cada escenario.
  5. He señalado la ruta public / index.php a la carpeta de la aplicación correcta para leer los archivos autoload.php y bootstrap / app.php

Agradeceré alguna idea que me puedan brindar.