Novedad de Laravel 6: Assert Deleted

Spread the love

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!