Pruebas automatizadas más limpias con el método withoutHeaders de Laravel

  • Publicado el 09 diciembre, 2024
  • Palabras: 49

¿Necesitas eliminar varios encabezados en tus pruebas de Laravel? ¡El nuevo método withoutHeaders te permite hacerlo de una sola vez! Exploremos esta útil mejora en las pruebas.

Pruebas automatizadas más limpias con el método withoutHeaders de Laravel

#La vieja y la nueva forma

Anteriormente, era necesario encadenar múltiples llamadas a métodos:

 

// Antes
$this->withoutHeader('name')
    ->withoutHeader('foo')
    ->from('previous/url');

// Ahora
$this->withoutHeaders(['name', 'foo'])
    ->from('previous/url');

 

#Ejemplo práctico

A continuación se explica cómo podría usarlo en una prueba de API:

 

class ApiAuthenticationTest extends TestCase
{
    public function test_api_rejects_requests_without_required_headers()
    {
        $response = $this->withoutHeaders([
            'X-API-Key',
            'X-Client-ID',
            'X-Request-Timestamp'
        ])->post('/api/data', [
            'title' => 'Test Data'
        ]);

        $response->assertStatus(401)
            ->assertJson([
                'message' => 'Missing required headers'
            ]);
    }
    
    public function test_internal_endpoints_ignore_tracking_headers()
    {
        $response = $this->withoutHeaders([
            'X-Track-User',
            'X-Track-Session',
            'X-Analytics-ID'
        ])->get('/internal/stats');

        $response->assertSuccessful();
    }
}

 

El nuevo método withoutHeaders hace que sus pruebas sean más limpias y fáciles de mantener al eliminar múltiples encabezados en una sola llamada.

Antonio Jenaro
Antonio Jenaro

Web Developer

Archivado en:

Fuente: Harris Raftopoulos

Inicia la conversación

Hazte miembro de Antonio Jenaro para comenzar a comentar.

Regístrate ahora

¿Ya estás registrado? Inicia sesión