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.

#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.
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