Laravel 使用流明中的特定参数测试POST请求

Laravel 使用流明中的特定参数测试POST请求,laravel,testing,acceptance-testing,lumen,Laravel,Testing,Acceptance Testing,Lumen,My Lumen应用程序当前以501响应响应hub.mode参数的未知值。如果没有hub.mode参数设置,则返回400响应。我可以使用cURL手动测试此行为,方法是: curl -v --data "hub.mode=unkown-value" http://lumen.app 正如预期的那样,有一个501响应。我似乎无法用phpunit来测试这一点。下面是我当前的测试用例: public function test501ResponseFromUnkownMode() { $thi

My Lumen应用程序当前以501响应响应
hub.mode
参数的未知值。如果没有
hub.mode
参数设置,则返回400响应。我可以使用cURL手动测试此行为,方法是:

curl -v --data "hub.mode=unkown-value" http://lumen.app
正如预期的那样,有一个501响应。我似乎无法用
phpunit
来测试这一点。下面是我当前的测试用例:

public function test501ResponseFromUnkownMode()
{
    $this->call('POST', '/', ['hub.mode' => 'unkown-value']);

    $this->assertResponseStatus(501);
}
但是,返回400响应,表示由于某种原因,
call()
方法没有传递
hub.mode
参数。以前有人遇到过类似的情况吗?

更新: 我可以通过使用依赖项注入来获取请求,而不是使用Facade(Request::capture())来解决我的问题。外观似乎不适合测试?好吧,拉维5.1中不再记录正面。 嗯,不知道我更喜欢什么。一个(未记录的)半工作特性或一条简单的错误消息表明5.1中的外观不再受支持


嗨,我这里也有类似的东西。我使用的是Laravel5.1。 每个我想调用(“POST”)的东西,我没有得到传递给相应接收器的参数。此外,在控制器中,请求总是GET

我不知道在调用laravels文档中描述的$this->post()时会出现什么错误

这是我从测试用例打来的电话

$response = $this->post('/api/v1/projects', ["name" => "Fancy Test Project" ]);
这里是我想“创造事物”的部分:


我错过了什么

尝试将-XPOST添加到curl parastry,手动将其添加到输入中
\Request::merge(['hub.mode'=>'unknown value'])
我应该在哪里添加合并?仅仅把它放在
$this->call(…)
行之后是不起作用的,我尝试过的其他方法似乎也不起作用。
public function store()
{
    $request = Request::capture();
    $raw = $request->json();
    $body = $raw->all();
    $project = Project::create($body);
    if ($project) {
        return response($project->id, 201);
    }
    return response("Could not create Project. Malformed Request?", 400);
}