How to test that an Eloquent model actually exists
In your tests, you might have used assertDatabaseHas
to make sure that a model actual is persisted.
it('will not delete a user', function() {
$user = User::find(1);
// perform some logic of which you want
// to verify that it doesn't delete your user
$this->assertDatabaseHas('users', [
'id' => 1,
]);
});
In recent Laravel versions you can replace this with assertModelExists
, which performs that database check under the hood.
it('will not delete a user', function() {
$user = User::find(1);
// perform some logic of which you want
// to verify that it doesn't delete your user
$this->assertModelExists($user);
});
There's also a assertModelMissing
that you could you instead of the more verbose assertDatabaseMissing
.
I hope this little tip, will improve the readability of your tests.
Thanks for sharing these testing tips! They really sharpen our coding skills. Speaking of tests, have you ever taken iq test free online? It’s interesting to see how we measure up in different areas!