Introducción

Laravel está construido pensando en las pruebas. De hecho, el soporte para pruebas con PHPUnit es incluido de forma predeterminada y un archivo phpunit.xml ya está configurado para tu aplicación. El framework también viene con métodos de ayuda convenientes (helpers) que permiten que pruebes tus aplicaciones de forma expresiva.

De forma predeterminada, el directorio tests de tu aplicación contiene dos directorios: Feature y Unit. Las pruebas unitarias (Unit) son pruebas que se enfocan en una muy pequeña porción aislada de tu código. De hecho, la mayoría de las pruebas unitarias se enfocan probablemente en un solo método. Las pruebas funcionales (Feature) pueden probar una porción más grande de tu código, incluyendo la forma en la que varios objetos interactúan entre sí e incluso una solicitud HTTP completa para un endpoint de JSON.

Un archivo ExampleTest.php es proporcionado en ambos directorios de prueba Feature y Unit. Después de instalar una nueva aplicación de Laravel, ejecuta phpunit en la línea de comandos para ejecutar tus pruebas.

Entorno

Al momento de ejecutar las pruebas por medio de phpunit, Laravel establecerá automáticamente el entorno de configuración a testing debido a las variables de entorno definidas en el archivo phpunit.xml. Laravel también configura automáticamente la sesión y caché para que usen el manejador o driver array al momento de ejecutar las pruebas, lo que significa que ninguna sesión o caché de datos será conservada mientras las pruebas son ejecutadas.

Eres libre de definir otros valores de configuración del entorno de pruebas cuando sea necesario. Las variables de entorno testing pueden ser configuradas en el archivo phpunit.xml, pero ¡asegúrate de limpiar tu caché de configuración usando el comando Artisan config:clear antes de ejecutar tus pruebas!

Además, puedes crear un archivo .env.testing en la raíz de tu proyecto. Este archivo anulará el archivo .env cuando ejecutes las pruebas PHPUnit o cuando ejecutes los comandos de Artisan con la opción --env = testing.

Creando y ejecutando pruebas

Para crear un nuevo caso de prueba, usa el comando Artisan make:test:

// Create a test in the Feature directory...
php artisan make:test UserTest

// Create a test in the Unit directory...
php artisan make:test UserTest --unit

Una vez que la prueba ha sido generada, puedes definir métodos de pruebas como lo harías normalmente usando PHPUnit. Para ejecutar tus pruebas, ejecuta el comando phpunit desde tu terminal:

<?php

namespace Tests\Unit;

use PHPUnit\Framework\TestCase;

class ExampleTest extends TestCase
{
    /**
    * A basic test example.
    *
    * @return void
    */
    public function testBasicTest()
    {
        $this->assertTrue(true);
    }
}

Si defines tus propios métodos setUp / tearDown dentro de una clase de prueba, asegúrate de ejecutar los métodos parent::setUp() / parent::tearDown() respectivos en la clase padre.

Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.

Lección anterior Eloquent: Serialización - Documentación de Laravel 6 Lección siguiente Pruebas HTTP - Documentación de Laravel 6