Avron2
Новичок
Есть некий компонент, модули которого тестирую в Laravel. Все замечательно тестируется, но есть вопросы как лучше сделать и правильно ли я понимаю этот процесс.
В компоненте 4 класса, для каждого из них есть класс с тесом. Компонент работает с БД: создание, поиск, удаление записей. Все замечательно работает, но есть следующие вопросы:
1. Есть Seeders, которые запускает каждый тестовый класс.
Где разместить этот вызов, чтобы он запустился 1 раз, перед запуском теста Также нужно очищать таблицы один раз, перед запуском класса Test*.php.
Где нужно размещать код, чтобы он запускался один раз, когда начали тестировать класс?
2. Знаю о существовании трейта RefreshDatabase, но как настроить чтобы он запускал миграции для тестов, а не для рабочего проекта. Как разделить миграции тестовые и не тестовые?
3. Теперь TestCheckPermissionSeeder. Я его разместил в \Tests\Unit\DatabaseSeeds, и запускаю из тестов.
Сделал так, потому что если разместить его в \App\Database\Seeds, то он выполнится в рабочем пространстве, а не в тестовом. Опять же вопрос, как разделить Seeder(ы) для тестов и для рабочего проекта? Тестовая база настроена, все работает.
Получилось сумбурно, но надеюсь основная мысль ясна.
В компоненте 4 класса, для каждого из них есть класс с тесом. Компонент работает с БД: создание, поиск, удаление записей. Все замечательно работает, но есть следующие вопросы:
1. Есть Seeders, которые запускает каждый тестовый класс.
PHP:
$this->seed(TestCheckPermissionSeeder::class);
PHP:
DB($table)->delete
2. Знаю о существовании трейта RefreshDatabase, но как настроить чтобы он запускал миграции для тестов, а не для рабочего проекта. Как разделить миграции тестовые и не тестовые?
3. Теперь TestCheckPermissionSeeder. Я его разместил в \Tests\Unit\DatabaseSeeds, и запускаю из тестов.
PHP:
$this->seed(TestCheckPermissionSeeder::class);
Получилось сумбурно, но надеюсь основная мысль ясна.