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.
What are your thoughts on "How to test that an Eloquent model actually exists"?