Laravel 6/7 测试:尚未设置外观根
Posted
技术标签:
【中文标题】Laravel 6/7 测试:尚未设置外观根【英文标题】:Laravel 6/7 testing: A facade root has not been set 【发布时间】:2020-09-10 04:13:03 【问题描述】:我正在尝试为我的 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
谁能解释这个错误的原因?
【问题讨论】:
【参考方案1】:您应该使用use Test\TestCase;
而不是PHPUnit\Framework\TestCase
测试需要调用 createApplication 方法,该方法位于Test\TestCase
中,该方法将触发内核,因此每个对象和类都会被引导。然后你可以使用容器、外观、请求、响应和所有这些东西。
【讨论】:
以上是关于Laravel 6/7 测试:尚未设置外观根的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 7致命错误:未捕获的RuntimeException:尚未设置外观根
将 laravel 5.8 升级到 6:致命错误:未捕获的 RuntimeException:尚未设置外观根