@romicohen
Системный Архитектор

Тестирование (PHPUnit) баз данных в Laravel — совершенно запутался в настройке — как разобраться?

В документации по Laravel https://laravel.com/docs/8.x/database-testing почему-то предполагается, что я уже года два только и делаю, что тестирую базы данных. Но это не так. Тема тестирования для меня достаточно свежая. Поэтому я совершенно не понимаю:

1. Зачем мне делать "Resetting The Database After Each Test"?

2. Почему в настройках phpunit.xml нужно указывать 'sqlite' и ':memory:'?

Еще в версии 5.4 есть такая фишка:
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;

это тоже относится к п.1

Может кто-то просто и понятно в двух предложениях объяснить, зачем всё это вообще нужно?
  • Вопрос задан
  • 338 просмотров
Решения вопроса 1
@romicohen Автор вопроса
Системный Архитектор
В общем, получается так, что гайдописатели опять слишком перемудрили :)

Вполне достаточно поместить в определение класса строчку:

use DatabaseTransactions;

Тогда записи в БД просто откатываются обратно - в трейте DatabaseTransactions это реализуется через хук:

beforeApplicationDestroyed()

без остальных изысков вполне можно обойтись.

В дополнение к этому можно использовать другую копию основной БД чисто для тестирования.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы