Laravel 5.6使用PHPUnit报错:get()方法未定义求助
问题解决:Laravel 5.6 PHPUnit测试报错Call to undefined method get()
错误根源在你的tests/TestCase.php文件里:你当前继承的是PHPUnit原生的测试基类,而不是Laravel框架提供的、包含HTTP测试方法的测试基类。
修复步骤
- 打开
tests/TestCase.php文件 - 注释掉这一行:
use PHPUnit\Framework\TestCase as BaseTestCase; - 取消注释这一行:
use Illuminate\Foundation\Testing\TestCase as BaseTestCase;
修改后的tests/TestCase.php代码如下:
<?php namespace Tests; // use PHPUnit\Framework\TestCase as BaseTestCase; use Illuminate\Foundation\Testing\TestCase as BaseTestCase; abstract class TestCase extends BaseTestCase { public function setUp():void { parent::setUp(); } public function tearDown():void { parent::tearDown(); } use CreatesApplication; }
原因说明
Laravel的Illuminate\Foundation\Testing\TestCase继承自PHPUnit的测试类,同时扩展了框架专属的测试能力——包括get()、post()这类模拟HTTP请求的方法,以及各种针对响应的断言方法。只有让你的测试类继承这个Laravel提供的基类,才能正常使用这些功能。
内容的提问来源于stack exchange,提问作者anderlaini
相关产品推荐
相关产品推荐

