Novedad de Laravel 6: Assert Deleted
Si eres de los que gustan de tener pruebas mas descriptivas este nuevo assert te va a gustar
Estoy seguro que cuando quieres validar que un modelo fue borrado de tu base de datos usas el assertDatabaseMissing,
Y es muy probable que pienses que esta afirmación no es muy clara y tiene doble intención porque igual nos sirve para saber si un modelo fue borrado o simplemente no esta en la base de datos.
Assert Missing
Veamos el siguiente ejemplo.
/** @test */ public function it_delete_an_user() { $user = factory(User::class)->create(); $this->deleteJson(url('api/users', $user)) ->assertNoContent(); $this->assertDatabaseMissing('users', [ 'id' => $user->id, ]); }
¿Observas el ultimo assert?
Si, seguro estas pensando lo mismo que yo. Esto puede mejorarse, y tienes razón.
Assert Deleted
Es por eso que ahora en Laravel 6 se agrego una nueva afirmación (assertDeleted) que hace nuestras pruebas mas fáciles de leer
/** @test */ public function it_delete_an_user() { $user = factory(User::class)->create(); $this->deleteJson(url('api/users', $user)) ->assertNoContent(); $this->assertDeleted($user); //mas claro no crees ? }
¿Qué te parece ahora el ultimo assert?
Desde mi punto de vista el Deleted hace mucho mas clara la intención de la prueba y ademas solo requieres pasar el modelo y eso es un plus.
Te dejo un vídeo por si quieres ver este assert en acción.
Ayúdame a compartir este post y recuerda dejar tu comentario!