扫码阅读
手机扫码阅读
解决 Laravel 单元测试报错:A facade root has not been set
104 2024-01-25
在使用 Laravel 写单元测试时,直接复制了默认的文件:tests/Unit/ExampleTest.php
。
而在测试对象中使用到了 Facades 相关的语法,执行phpunit
时报错:
RuntimeException: A facade root has not been set.
/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:258
此问题的原因是继承了错误的基类,默认文件tests/Unit/ExampleTest.php
中:
namespace Tests\Unit; use PHPUnit\Framework\TestCase; class ExampleTest extends TestCase { /**
* A basic test example.
*
* @return void
*/ public function testBasicTest() { $this->assertTrue(true);
}
}
继承的是PHPUnit\Framework\TestCase
,而我们应该继承tests/TestCase.php
中的Tests\TestCase
。
namespace Tests; use Illuminate\Foundation\Testing\TestCase as BaseTestCase; abstract class TestCase extends BaseTestCase { use CreatesApplication;
}
实际上应该复制 tests/Feature/ExampleTest.php
作为模板文件,就不会遇到这个问题了。
除了复制之外,也可以直接在命令行中直接运行:
php artisan make:test FooTest
将会为你创建tests/Feature/FooTest.php
文件,而加上--unit
参数,则是在tests/Unit
中创建文件。
php artisan make:test BarTest --unit
原文链接:
http://mp.weixin.qq.com/s?__biz=MzAwOTgzNjY4MA==&mid=2247484309&idx=2&sn=6ecd3618b89dd3376f644cdbe4650962&chksm=9b58c272ac2f4b64777e7b8997c327a39346b7ce8060ab8a8d09d474aae41802e21f6f2c7563#rd
鲁飞的其他文章
如何获取指定CSDN博主的全部文章信息
本文说明了爬取 CSDN 作者文章的方法。
GitHub Actions 真香系列之自动同步镜像仓库
GitHub虽然在国内访问慢,但是依旧不能阻挠国内开发者的使用,我们一般也会在Gitee或者其他托管平台创建一个镜像,用来方便不能正常访问GitHub的开发者。
simps/mqtt:适用于 PHP 的 MQTT 协议解析和协程客户端
也许这是第一个支持 MQTT v5.0 协议的 PHP library…
Swoole v4.6 版本新特性之 SNI 支持
Swoole 在 v4.6.0 版本中对 SNI 进行了支持,这篇文章就对这个新特性进行一些演示和说明。
新注册的域名被微信拦截怎么处理?
前段时间新注册了一个域名,没有在微信测试访问,等用到的时候发现居然被微信拦截了...
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线