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 都会被引导。然后你可以使用容器、外观、请求、响应和所有这些东西。
我正在尝试为我的 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 都会被引导。然后你可以使用容器、外观、请求、响应和所有这些东西。