РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1231 of 1392 menu

assertDatabaseCount

Метод assertDatabaseCount предназначен для проверки количества записей в указанной таблице базы данных в тестах Laravel. Этот метод позволяет утверждать, что таблица содержит ожидаемое количество строк. Первым параметром передаётся имя таблицы, вторым - ожидаемое количество записей. Третьим необязательным параметром можно передать имя соединения с базой данных.

Синтаксис

<?php $this->assertDatabaseCount($table, $expectedCount, $connection); ?>

Пример

Давайте проверим, что в таблице 'users' содержится ровно 5 записей:

<?php namespace Tests\Unit; use Tests\TestCase; use App\Models\User; class UserTest extends TestCase { public function test_users_table_has_five_records() { User::factory()->count(5)->create(); $this->assertDatabaseCount('users', 5); } } ?>

Результат выполнения кода:

"Test passed: users table has 5 records"

Пример

Давайте проверим количество записей в таблице 'posts' после создания определённого количества постов:

<?php namespace Tests\Feature; use Tests\TestCase; use App\Models\Post; class PostTest extends TestCase { public function test_ten_posts_created() { Post::factory()->count(10)->create(); $this->assertDatabaseCount('posts', 10); } } ?>

Результат выполнения кода:

"Test passed: posts table has 10 records"

Пример

Давайте проверим количество записей в таблице 'articles' после выполнения операции удаления:

<?php namespace Tests\Feature; use Tests\TestCase; use App\Models\Article; class ArticleTest extends TestCase { public function test_articles_deleted_should_leave_five() { Article::factory()->count(10)->create(); Article::where('id', '>', 5)->delete(); $this->assertDatabaseCount('articles', 5); } } ?>

Результат выполнения кода:

"Test passed: articles table has 5 records after deletion"

Пример

Давайте проверим, что таблица 'categories' пуста после удаления всех записей:

<?php namespace Tests\Feature; use Tests\TestCase; use App\Models\Category; class CategoryTest extends TestCase { public function test_categories_table_is_empty() { Category::factory()->count(3)->create(); Category::truncate(); $this->assertDatabaseCount('categories', 0); } } ?>

Результат выполнения кода:

"Test passed: categories table is empty"

Пример

Давайте проверим количество записей с использованием определённого соединения с базой данных:

<?php namespace Tests\Unit; use Tests\TestCase; use App\Models\User; class DatabaseTest extends TestCase { public function test_secondary_database_users_count() { $this->assertDatabaseCount('users', 3, 'secondary'); } } ?>

Результат выполнения кода:

"Test passed: secondary database users table has 3 records"

Смотрите также

  • метод assertDatabaseHas,
    который проверяет существование записи в таблице
  • метод assertDatabaseMissing,
    который проверяет отсутствие записи в таблице
  • метод assertSoftDeleted,
    который проверяет мягкое удаление записи
  • класс TestCase,
    который является базовым классом для всех тестов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить