Метод assertModelExists
Метод assertModelExists применяется в тестах Laravel для проверки,
что определённая модель существует в базе данных. Он принимает экземпляр
модели в качестве аргумента и выполняет проверку её существования
по первичному ключу. Если модель не найдена, тест проваливается
с соответствующим сообщением об ошибке.
Синтаксис
<?php
$this->assertModelExists($model);
?>
Пример
Давайте проверим, что созданная статья существует в базе данных:
<?php
namespace Tests\Feature;
use Tests\TestCase;
use App\Models\Article;
use Illuminate\Foundation\Testing\RefreshDatabase;
class ArticleTest extends TestCase
{
use RefreshDatabase;
public function test_article_exists_in_database()
{
$article = Article::create([
'string' => 'Test Article',
'text' => 'This is a test article content',
'integer' => 1,
'boolean' => true
]);
$this->assertModelExists($article);
}
}
?>
Результат выполнения кода:
"Test passed"
Пример
Давайте проверим, что модель существует после обновления данных:
<?php
namespace Tests\Feature;
use Tests\TestCase;
use App\Models\Article;
use Illuminate\Foundation\Testing\RefreshDatabase;
class ArticleTest extends TestCase
{
use RefreshDatabase;
public function test_article_exists_after_update()
{
$article = Article::create([
'string' => 'Original Title',
'text' => 'Original content',
'integer' => 1,
'boolean' => false
]);
$article->update([
'string' => 'Updated Title',
'text' => 'Updated content'
]);
$this->assertModelExists($article);
}
}
?>
Результат выполнения кода:
"Test passed"
Пример
Давайте используем фабрику для создания модели и проверки её существования:
<?php
namespace Tests\Feature;
use Tests\TestCase;
use App\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
class UserTest extends TestCase
{
use RefreshDatabase;
public function test_user_exists_after_creation()
{
$user = User::factory()->create([
'name' => 'John Doe',
'email' => 'john@example.com'
]);
$this->assertModelExists($user);
}
}
?>
Результат выполнения кода:
"Test passed"
Смотрите также
-
метод
assertModelMissing,
который проверяет отсутствие модели в базе данных -
метод
assertDatabaseHas,
который проверяет наличие записей по заданным критериям -
метод
assertDatabaseMissing,
который проверяет отсутствие записей по заданным критериям -
метод
assertSoftDeleted,
который проверяет наличие мягко удалённой записи