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

Метод seed

Метод seed применяется в тестовых классах для наполнения базы данных тестовыми записями. Он вызывает выполнение указанных сидеров или всех доступных сидеров, если аргумент не передан. Метод полезен для подготовки базы данных к тестированию, особенно когда требуется предварительно заполнить таблицы справочными данными.

Синтаксис

<?php $this->seed($class = null); ?>

Параметры метода:

  • $class - необязательный параметр, передаётся имя класса сидера, который нужно выполнить. Если параметр опущен, выполняются все сидеры из директории database/seeders.

Пример

Давайте выполним все сидеры в тестовом классе:

<?php namespace Tests\Unit; use Tests\TestCase; class ArticleTest extends TestCase { public function test_article_count() { $this->seed(); $count = Article::count(); echo "Total articles: " . $count; } } ?>

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

"Total articles: 50"

Пример

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

<?php namespace Tests\Feature; use Tests\TestCase; use Database\Seeders\CategorySeeder; class CategoryTest extends TestCase { public function test_category_seeding() { $this->seed(CategorySeeder::class); $categories = Category::all(); foreach ($categories as $category) { echo $category->name; } } } ?>

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

"Technology" "Science" "Business" "Health"

Пример

Давайте выполним сидер перед каждым тестом с помощью метода setUp:

<?php namespace Tests\Feature; use Tests\TestCase; use Database\Seeders\UserSeeder; class UserTest extends TestCase { protected function setUp(): void { parent::setUp(); $this->seed(UserSeeder::class); } public function test_user_authentication() { $user = User::first(); $res = auth()->attempt([ 'email' => $user->email, 'password' => 'password' ]); echo $res ? "Authenticated" : "Not authenticated"; } } ?>

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

"Authenticated"

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

  • класс RefreshDatabase,
    который управляет миграциями и сбрасывает состояние базы данных
  • метод setUp,
    который выполняется перед каждым тестом
  • метод tearDown,
    который выполняется после каждого теста
  • класс Factory,
    который используется для создания моделей в тестах
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить