首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Laravel 10.x - A facade root has not been set.解决办法

Laravel 10.x - A facade root has not been set.解决办法

原创
作者头像
用砖头敲代码
发布于 2024-08-30 05:28:19
发布于 2024-08-30 05:28:19
2590
举报
文章被收录于专栏:用砖头敲代码用砖头敲代码

今天在laravel单元测试中使用Http请求接口时,报错显示A facade root has not been set.

默认单元测试的代码是这样的

代码语言:php
AI代码解释
复制
<?php

namespace Tests\Unit;

use Illuminate\Support\Facades\Http;
use PHPUnit\Framework\TestCase;
use Tests\CreatesApplication;

class ExampleTest extends TestCase
{
    /**
     * A basic test example.
     */
    public function test_that_true_is_true(): void
    {
        $resp= Http::get('https://b.example.com/login')->json();
        var_dump($resp);
        $this->assertTrue(true);
    }

}

找到解决办法,如下:

代码语言:php
AI代码解释
复制
<?php

namespace Tests\Unit;

use Illuminate\Contracts\Console\Kernel;
use Illuminate\Support\Facades\Http;
use Illuminate\Foundation\Testing\TestCase as BaseTestCase;

class ExampleTest extends BaseTestCase
{
    /**
     * A basic test example.
     */
    public function test_that_true_is_true(): void
    {
        $resp= Http::get('https://b.example.com/login')->json();
        var_dump($resp);
        $this->assertTrue(true);
    }

    public function createApplication()
    {
        // TODO: Implement createApplication() method.
        $app = require __DIR__.'/../bootstrap/app.php';
        $app->make(Kernel::class)->bootstrap();
        return $app;
    }
}

不太优美,感觉不是laravel的风格,于此同时在单元测试目录下发现一个CreatesApplication的trait类,于是修改代码为这样

代码语言:php
AI代码解释
复制
<?php

namespace Tests\Unit;

use Illuminate\Support\Facades\Http;
use Illuminate\Foundation\Testing\TestCase as BaseTestCase;
use Tests\CreatesApplication;

class ExampleTest extends BaseTestCase
{
    use CreatesApplication;

    /**
     * A basic test example.
     */
    public function test_that_true_is_true(): void
    {
        $resp= Http::get('https://b.example.com/login')->json();
        var_dump($resp);
        $this->assertTrue(true);
    }
}

emmmm....非常优美,这才是laravel的感觉,再次运行单元测试,完美通过

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
解决 Laravel 单元测试报错:A facade root has not been set
在使用 Laravel 写单元测试时,直接复制了默认的文件:tests/Unit/ExampleTest.php。
沈唁
2022/03/03
2K0
掌握 Laravel 的测试方法
不管你承认与否在研发一款产品时,软件测试对项目而言意义重大,然而是测试通常被我们视而不见。这篇文章我们主要研究 Laravel 框架的测试方法。
柳公子
2018/09/17
6.6K0
laravel 之 Unit 单元测试
在进行项目开发的时候,经常会对我们的类,函数,http请求等进行测试,看结果是否符合我们的预期。 对于http 请求我们通常会使用postman 来进行测试。 那么如果我们需要测试某一个类,某一个方法,需要怎么办?
句小芒
2022/12/29
1.5K0
Laravel 单元测试:使用phpunit进行测试
文章链接:https://cloud.tencent.com/developer/article/2468863
程序那些事儿
2024/11/21
6520
Laravel 单元测试:使用phpunit进行测试
Laravel 底层原理:门面(Facades)
Laravel 内置了很多 Facades ,可以访问绝大部分 Laravel 的功能。
码农编程进阶笔记
2021/07/20
1.3K0
为什么 Laravel 会成为最成功的 PHP 框架?
Laravel是一个有着美好前景的年轻框架,它的社区充满着活力,相关的文档和教程完整而清晰,并为快速、安全地开发现代应用程序提供了必要的功能。在近几年对PHP框架流行度的统计中,Laravel始终遥遥领先。那么是什么让Laravel成为最成功的PHP框架? 2011年,Taylor Otwell将Laravel作为一种包含全新现代方法的框架介绍给大家。Laravel最初的设计是为了面向MVC架构的,它可以满足如事件处理、用户身份验证等各种需求。另外它还有一个由管理数据库强力支持,用于管理模块化和可扩展性代码
wangxl
2018/03/08
4.4K0
深入浅出 Laravel 的 Facade 外观系统
本文将从以下几个方面出发,全面讲解 Laravel 中 Facade 的运行原理,为了便于理解后续中所有 Facade 译作「外观」:
柳公子
2018/09/17
2.7K0
深入浅出 Laravel 的 Facade 外观系统
【Laravel系列4.6】
今天学习的内容比较轻松,就讲两个小东西,而且也没什么特别的源码方面的内容。主要也是因为这两个小功能的应用会比较广泛,并且源码实现也非常简单易懂,我就简单的说一下源码大概的位置,大家直接自己看一下就好了。因此,这篇文章也可以看成是本系列教程学习的一个中场休息。
硬核项目经理
2023/03/03
1.6K0
【Laravel系列4.6】
【Laravel系列7.9】测试
测试相关的内容其实也不是我的强项,毕竟日常的开发就没怎么接触过,但是不讲吧,又总感觉缺少一点什么,所以这一块也只是简单的演示一下,没办法带大家进行更加深入的学习。
硬核项目经理
2023/03/03
1.4K0
【Laravel系列7.9】测试
Laravel 用户认证
基于 web 浏览器的身份验证:常见于前后端混合开发的项目,php混合html模版;使用session+cookie完成身份验证。现在很少见了
崔哥
2023/04/16
2.6K0
Laravel Facades的实现原理
Facades是我们在Laravel应用开发中使用频率很高的一个组件,叫组件不太合适,其实它们是一组静态类接口或者说代理,让开发者能简单的访问绑定到服务容器里的各种服务。Laravel文档中对Facades的解释如下:
KevinYan
2019/10/13
1.2K0
Laravel 记录SQL日志
Laravel 默认只在sql语法错误时提示完整的sql日志,但实际情况接口慢,筛选条件和预期不符等,都需要看到sql语句,通过sql语句判断问题所在
崔哥
2023/01/01
1.8K0
Laravel中Facade的加载过程与原理详解
前言 本文主要给大家介绍了关于Laravel中Facade加载过程与原理的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 简介
用户2323866
2021/07/08
6780
Laravel 系统版本查看及artisan管理员密码找回方法针对各个版本通用方法及原理-优雅草卓伊凡
优雅草蜻蜓T会议系统专业版 最近又有客户要了,但是发现 密码不对 管理员账户密码不对,卓伊凡必须处理下,这里顺便讲解密码原理
卓伊凡
2025/07/21
580
Laravel5.3之PHP反射(Reflection) (上)
说明:Laravel中经常使用PHP的反射特性来设计代码,本文主要学习PHP的反射特性,来提高写代码时的设计质量。PHP提供一套检测class, interface, trait, property, method的两个工具包:Introspection Functions和Reflection API,类似于探针一样的东西来探测这些一等公民。本文先看下Introspection Functions的使用。
botkenni
2022/01/10
2.3K0
Laravel5.3之PHP反射(Reflection) (上)
【Laravel系列4.7】连接redis以及缓存应用
在现代的数据库应用中,Redis 已经占据了很重要的位置。关于 Redis 的优点相信也不用我多说了,快速的内容访问也能够充当缓存数据库来使用。早前几年还有不少的公司在使用 Memcached ,但是现在就已经屈指可数了。毕竟在同样的功能下,Redis 拥有更多的数据类型,也能适应更多的场景。Laravel 也是可以完美支持 Memcached 的,不过这个就不在我们的学习范围里了,有兴趣的同学可以自己研究一下。注意,是 Memcached 不是 Memcache 哦,Memcache 是已经相当于被淘汰的技术了。
硬核项目经理
2023/03/03
1.4K0
【Laravel系列4.7】连接redis以及缓存应用
关于Laravel 5.8.*(laravel-admin 1.x)的一些问题以及解决办法汇总
**解决办法:**把config/app.php中的'timezone' => 'UTC'修改为'timezone' => 'PRC'或者'timezone' => 'Asia/Shanghai'即可
友儿
2022/09/11
1.6K0
【Laravel系列7.4】安全相关
对于一个框架来说,安全体系是非常重要的一环。如果一个框架没有好的安全措施及功能的话,那么这个框架在线上运行的时候多多少少还是会让人不放心的,毕竟各路大佬可能随时都在扫描各个网站的漏洞。之前的各种安全事件可能你不一定经历过,但一定听说过。今天,我们就来看看 Laravel 中的安全相关功能。
硬核项目经理
2023/03/03
4.3K0
【Laravel系列7.4】安全相关
Laravel5.3之bootstrap源码解析
说明:Laravel在把Request通过管道Pipeline送入中间件Middleware和路由Router之前,还做了程序的启动Bootstrap工作,本文主要学习相关源码,看看Laravel启动程序做了哪些具体工作,并将个人的研究心得分享出来,希望对别人有所帮助。Laravel在入口index.php时先加载Composer加载器:Laravel5.2之Composer自动加载,然后进行Application的实例化:Laravel5.3之IoC Container实例化源码解析,得到实例化后的Application对象再从容器中解析出Kernel服务,然后进行Request实例化(Request实例化下次再聊),然后进行Bootstrap操作启动程序,再通过Pipeline送到Middleware:Laravel5.3之Middleware源码解析,然后经过路由映射找到对该请求的操作action(以后再聊),生成Response对象经过Kernel的send()发送给Client。本文主要聊下程序的启动操作,主要做了哪些准备工作。
botkenni
2022/01/10
7.3K0
Laravel5.3之bootstrap源码解析
Love beautiful code? We do too.
Laravel是一个有着美好前景的年轻框架,它的社区充满着活力,同时提供了完整而清晰的文档,而且为快速、安全地开发现代应用提供了必要的功能。
竹清
2018/08/31
3.5K0
Love beautiful code? We do too.
相关推荐
解决 Laravel 单元测试报错:A facade root has not been set
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档