Решение для тестирования Laravel PEST — как решить проблему «Корень фасада не установлен»

Решение для тестирования Laravel PEST — как решить проблему «Корень фасада не установлен»

9 декабря 2023 г.

При появлении сообщения об ошибке «Корень фасада не установлен» в Laravel обычно указывает на проблему с настройкой фасада Laravel. Эта проблема может возникнуть, когда приложение Laravel не загружается должным образом, особенно во время выполнения теста.

Недавно я столкнулся и решил эту проблему, работая над сценарием тестирования Laravel PEST. Вот подробное описание проблемы и ее решения.

Описание проблемы:

Ошибка проявилась после введения в модель признака LaravelScoutSearchable, как показано в фрагменте кода ниже:

use IlluminateFoundationAuthUser as Authenticatable;

final class User extends Authenticatable
{
    use Searchable;
}

Впоследствии был реализован PEST-тест:

use AppModelsUser;

it('can determine if it has a password set', function () {
    $user = new User(['password' => 'foo']);

    expect($user->hasPassword())->toBeTrue();
});

Однако тест завершился неудачей со следующей ошибкой:

 TestsUnitUserTest > it can determine if it has a password set
   PHPUnitFrameworkExceptionWrapper
  A facade root has not been set.

  at vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:352
  {
    $instance = static::getFacadeRoot();
    if (! $instance) {
       throw new RuntimeException('A facade root has not been set.');
    }

    return $instance->$method(...$args);
}

Решение:

Чтобы решить эту проблему, в файлtests/Pest.php была добавлена ​​следующая строка:

uses(
    TestsTestCase::class,
)->in('Unit');

Это дополнение гарантирует, что необходимые компоненты Laravel правильно инициализируются при запуске тестов, тем самым устраняя ошибку «Корень фасада не установлен».

Благодаря использованию этого решения PEST-тест был успешно выполнен, что подтвердило эффективное решение проблемы.

Не стесняйтесь интегрировать этот подход в свой проект Laravel, чтобы решить аналогичные проблемы, связанные с ошибкой «Корень фасада не установлен» во время тестирования.


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE