Laravel 6/7 测试:尚未设置外观根

Laravel 6/7 testing: A facade root has not been set

我正在尝试为我的 Laravel 7 应用编写一些测试。 但我一直面临 A facade root has not been set. 错误。

<?php

namespace Tests\Feature;

use Illuminate\Support\Facades\Config;
use PHPUnit\Framework\TestCase;

class AddressListenerRepositoryTest extends TestCase
{
    public function testCreate()
    {
        Config::set('x', 'address_listeners'); // Cause of "A facade root has not been set" error
    }
}

任何人都可以解释这个错误的原因吗?

您应该使用 use Test\TestCase; 而不是 PHPUnit\Framework\TestCase

测试需要调用位于 Test\TestCase 中的 createApplication 方法,该方法将触发内核,因此每个对象和 class 都会被引导。然后你可以使用容器、外观、请求、响应和所有这些东西。