Skip to main content

Introduction

Laravel fournit une API riche pour simuler des requêtes HTTP et vérifier les réponses, sans démarrer de vrai serveur.
get() envoie une requête GET simulée ; assertStatus() vérifie le code HTTP.
Le middleware CSRF est automatiquement désactivé pendant les tests.

Créer des requêtes

Utilisez get, post, put, patch, delete dans vos tests. Aucune vraie requête réseau ; le retour est une Illuminate\Testing\TestResponse.
Une seule requête par test recommandé. Plusieurs peuvent produire des comportements inattendus.

Personnaliser les en-têtes

Cookies

Session et authentification

actingAs() connecte un utilisateur.
Précisez la garde en 2ᵉ argument.
Déconnecter :

Débogage de la réponse

Pour arrêter l’exécution :

Tests d’exceptions

Utilisez la façade Exceptions.
assertNotReported / assertNothingReported pour l’inverse.
Désactiver la gestion des exceptions :
assertThrows() :
assertDoesntThrow() :

Tests JSON

json, getJson, postJson, putJson, patchJson, deleteJson, optionsJson.
Accès aux données comme à un tableau :
assertJson() vérifie qu’un fragment JSON est présent (autres propriétés autorisées).

Correspondance exacte

assertExactJson() exige une égalité stricte.

JSON path

Avec closure :

Fluent JSON

Utilisez AssertableJson.
etc() autorise des propriétés supplémentaires. Sans etc(), une propriété inattendue fait échouer le test — cela évite des fuites accidentelles.
has() / missing() :
hasAll() / missingAll() :

Collections JSON

each() pour vérifier tous les éléments :

Assertions de type

Union de types via | :
Types : string, integer, double, boolean, array, null.

Tests d’authentification

Garde précise : $this->actingAs($user, 'api');.

Exemple : inscription

Tests de session

Assertions de session

Upload de fichiers

UploadedFile::fake() + Storage::fake().

Assertions Storage

Fake images / fichiers

Assertions de réponse

Assertions de validation

assertValid() inverse.

Middleware bypass

Ignorer temporairement des middlewares.
Utile pour se concentrer sur la logique du contrôleur, mais préférez tester avec les middlewares réels quand c’est possible.

Événements, jobs, mails, notifications

Event::fake()

Queue::fake()

Mail::fake()

Notification::fake()

Assertions de vue

blade() évalue une chaîne Blade brute :

Récapitulatif

Dernière modification le 13 juillet 2026