Laravel 9中含setUp()时Config门面无法访问的原因咨询
问题原因及解决方法
这是因为你在自定义的setUp()方法里没有调用父类的setUp(),导致Laravel的测试环境未完成初始化。
Laravel自带的TestCase父类中的setUp()方法,负责启动测试用的Laravel应用实例、初始化服务容器、注册所有门面(包括Config)这些核心操作。当你自行定义setUp()但未调用parent::setUp()时,这些关键步骤都不会执行,门面还未被系统识别,自然会报“Class Config not found”的错误。
第二种写法里你没有覆盖setUp()方法,PHPUnit会自动执行父类的setUp(),等test_some_method()执行时,测试环境已经准备妥当,Config门面就能正常使用。
修复方法
只需在你的setUp()方法第一行加上父类的初始化调用即可:
public function setUp(): void { parent::setUp(); // 必须先调用父类方法初始化环境 $this->aContact = new CompanyContact(); }
内容的提问来源于stack exchange,提问作者Oli
相关产品推荐
相关产品推荐

