【发布时间】:2018-11-17 00:33:20
【问题描述】:
我正在尝试在 Laravel 中编写 phpunit 测试用例,问题是功能运行良好,但是当我尝试通过 phpunit 访问时,$request->all() 总是返回空。
$request->request->add(['testId' => 1]);
这被称为使用
$request->all();
当在 Laravel 应用程序中调用时,它会按预期工作并提供数据。但是当使用 phpunit 通过终端调用时,它总是返回空数组。但如果调用为
,它会返回数据$request->request->all();
请告诉我如何解决这个问题。使用的 Laravel 版本是 Laravel Framework 5.6.24
我在 Phpunit 测试文件中手动创建一个请求:
use Illuminate\Http\Request as Request;
$request = new Request();
测试类:
use Tests\TestCase;
use App\Http\Middleware\Authenticate;
class BasicTest extends TestCase
{
public function testMyfunc()
{
$request = new Request();
$request->setMethod('GET');
$request->headers->set('key','value');
$request->request->add(['testId' => 1]);
print_r($request->all()); //This is returning empty array always
print_r($request->request->all()); //This returns correct data
//But I need to get the GET params when I call $request->all()
}
}
【问题讨论】:
-
你能分享你的测试课吗?
-
@AnarBayramov 我已经更新了我的问题
-
我在应用程序内部有同样的行为(不是 PHPUnit)。创建了新的请求,通过add添加了参数(实际上我什么都试过了!!!).... request->All() 是空的!
标签: php laravel-5 request phpunit laravel-5.6