Laravel 9.5 est désormais disponible depuis le 16 mars, une release principalement tournée vers nos tests, voyons les modifications les plus importantes de cette nouvelle version mineure.
Freeze Time
L’une des qualités premières d’un test est sa reproductibilité, le hasard doit être limité au maximum afin d’éviter les résultats aléatoires et fausser la robustesse de votre testsuite.
Le temps est quelque chose de volatile, il s'écoule pendant le déroulement de vos tests. Cette source d’imprévisibilité peut s’avérer préjudiciable à leur fiabilité.
Jusqu’à présent, Il était possible de figer le temps directement depuis une instance de carbon.
1$frozenDate = Carbon::create($year, $month, $day, $hours);2 3Carbon::setTestNow($frozenDate);
Ce besoin est désormais facilité grace à une PR de DarkGhostHunter ajoutant deux nouvelles méthodes freezeTime
et freezeSecond
.
1$this->freezeSecond();2 3User::factory()->create();4 5sleep(1);6 7$this->assertEquals(now(), User::first()->created_at);
Partial queue faking
Laravel propose tout un lot de méthodes pour faciliter le mock des briques du framework.
La méthode Queue::fake() est un moyen rapide de mocker tous les dispatchs de job de votre application.
Jusqu’à présent cette méthode fake
impactait tous les dispatchs sans aucune distinction, vous avez désormais la possibilité de spécifier quels jobs les tests doivent ignorer depuis cette PR de Taylor Otwell !
1Queue::fake(SendingEmails::class);
assertJsonPath accept closure
Toujours dans l’optique de simplifier l’écriture des tests, Fabien Villepinte ajoute le support d'une closure à la méthode assertJsonPath
permettant de déterminer dynamiquement si l'assertion est valide.
1$this2 ->getJson('/api/whatever')3 ->assertJsonPath('data.humidity', function ($humidity) {4 return $humidity >= 50;5 });
Et plus encore
L'intégralité du patch notes est présent ici !
![Mathieu De Gracia avatar](https://cdn.laravel-france.com/images/avatars/f44d2506-7aac-4f78-9a2d-b0678e6f25f2.jpg)
A lire
Autres articles de la même catégorie
![](https://cdn.laravel-france.com/images/covers/f1586984-c90d-4e55-ac61-57dbff248c18.jpg)
Laracon US 23 : les nouveautés !
Le plus gros événement Laravel de l’année a eu lieu ces 19 et 20 juillet à Nashville.
![](https://cdn.laravel-france.com/images/covers/e885f5df-2699-40e9-8a31-a3189fff1099.jpg)
Top 10 des posts en 2022
L'année se termine !
![](https://cdn.laravel-france.com/images/covers/5142f123-51c6-482f-af29-7537c7c42eb0.jpg)
Découvrez le design pattern Composite dans Laravel
Le pattern composite facilite la création d'objets dans des arborescences, découvrez comment l'utiliser !