使用Lumen

时间:2015-04-23 14:24:08

标签: laravel testing acceptance-testing lumen

我的流明应用程序当前响应hub.mode参数的未知值并返回501响应。如果没有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响应,表示由于某种原因hub.mode方法未传递call()参数。以前有人遇到过这样的事吗?

1 个答案:

答案 0 :(得分:0)

更新: 我可以通过使用依赖注入来获取请求而不是使用Facade(Request :: capture())来解决我的问题。好像Facade不适用于测试?好吧,Laravel 5.1中不再记录Facade了。 嗯,不知道我更喜欢什么。 (未记录的)半工作功能或简单错误消息,不再支持5.1中的Facade。

嗨,我在这里有类似的东西。我使用laravel 5.1。 而evetyme我想调用('POST')我没有把参数传递给相应的接收器。此外,在Controller中,请求始终是GET。

我不知道在调用$ this-> post()时我会做错什么,如lasvels Docs中所述。 http://laravel.com/docs/5.1/testing#testing-json-apis

以下是来自TestCase的电话

$response = $this->post('/api/v1/projects', ["name" => "Fancy Test Project" ]);

这里是我想“创造事物”的部分:

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);
}

我缺少什么?