Так что я думаю, что понял это.У меня была правильная идея использовать Транзакции вместо Миграций для юнит-тестов.
В классах теста Laravel вместо
use DatabaseMigrations;
Вы можете использовать
use DatabaseTransactions;
Это будет использовать текущие таблицы, которые находятся в вашей БД.В моем случае я указываю, чтобы мои тесты использовали конкретную БД, которую я настроил для тестирования, под названием «my_project_test» (при условии, что обычная БД приложения будет называться «my_project»), где я уже перенес / создал таблицы.После завершения теста он «откатит» / вернет все данные, которые вы вставили или удалили из БД, чтобы вернуть их в прежнее состояние.Утверждения должны действовать одинаково, если вы используете DatabaseMigrations или DatabaseTranactions.Просто убедитесь, что ваша тестовая БД полностью обновлена.
Пример того, как будет выглядеть класс ...
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
use Illuminate\Routing\Route;
class UserControllerTest extends TestCase
{
//Instead of DatabaseMigrations use DatabaseTransactions instead.
//use DatabaseMigrations;
use DatabaseTransactions;
... unit tests for class
}