繁体   English   中英

从phpunit调用时,laravel中的$ request-> all()返回空

[英]$request->all() in laravel returns empty when called from phpunit

我正在尝试在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()
   }
}

您要将数据添加到QUERY!

$request->query->add(['testId' => 1]);

它仅以这种方式对我有用...除了

$request->request->replace(['testId' => 1]);

但是最后一行适用于其他重新请求,因此即使没有它也可以正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM