1

我正在尝试为我的 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
    }
}

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

4

1 回答 1

6

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

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

于 2020-05-23T09:29:12.697 回答