猿问

升级到 7.x 后,测试中的 Json() 方法不遵守 config('app.url')

几分钟前,我按照升级指南将 laravel 版本从 6.16.0 升级到了 7.17.2 。

但我的测试现在失败了,但有以下例外:Symfony\Component\HttpKernel\Exception\NotFoundHttpException : POST http://localhost/v1/orders

在我的文件中APP_URL设置为。但在我的基本 TestCase 类中,我使用自定义端点覆盖 config('app.url') 。升级之前,测试选择的是自定义端点。http://localhost.env

自上次升级以来,显然 getJson()、postJson() 等辅助方法不是应用文件中的 URL,config('app.url')而是直接应用.env文件中的 URL。因为当我对文件中的 URL 进行硬编码时.env,我不再收到 NotFoundHttpException。

我该如何解决?


慕仙森
浏览 170回答 1
1回答

森林海

您可以执行以下操作。在你的 phpunit.xml 中:<php>&nbsp; &nbsp; <server name="APP_URL" value="http://example.com"/></php>或者在你的测试用例中:use Illuminate\Support\Facades\URL;protected function setUp(): void{&nbsp; &nbsp; parent::setUp();&nbsp; &nbsp; URL::forceRootUrl('http://example.com');}这两者都会导致app('url')->to('my-endpoint')打印http://example.com/my-endpoint
随时随地看视频慕课网APP
我要回答