在laravel 5中使用令牌通过PhpUnit进行POST请求?

时间:2016-04-18 12:39:54

标签: php laravel laravel-5 phpunit html-form

我正在尝试使用phpunit测试我的Laravel API,并且我使用Blah[]方法执行调用并查看它们是否正常工作。

我也是JWT进行身份验证,因此必须通过我的令牌。简单的GET请求很简单:

$this->call();

但是当我需要为此创建一个新用户或任何资源时,我正在尝试:

$response = $this->call('GET', 'users?token=' . $this->token);

但它给了我一个像这样的重定向:

$response = $this->call('POST', 'users/?token=' . $this->token, $user);

现在当我做一些挖掘时,我遇到了这个:

Redirect 302 on Laravel POST request

调用方法的API如下所示:

<!DOCTYPE html>\n
<html>\n
    <head>\n
        <meta charset="UTF-8" />\n
        <meta http-equiv="refresh" content="1;url=http://localhost" />\n
\n
        <title>Redirecting to http://localhost</title>\n
    </head>\n
    <body>\n
        Redirecting to <a href="http://localhost">http://localhost</a>.\n
    </body>\n
</html>

所以我尝试了这个:

$response = $this->call($method, $uri, $parameters, $cookies, $files, $server, $content);

但我仍在重定向。我错过了什么?

1 个答案:

答案 0 :(得分:2)

为什么不尝试这样的事情?

$token = ‘your token’;
$method = ‘POST’;
$params = [];
$response = $this->call($method,'http://api.api.app/api/',
    $params,[],[],['HTTP_Authorization' => 'Bearer ' . $token],[]);

$this->response = $response;
$this->seeStatusCode(200);

更新

你在Laravel中启用了CORS吗?也许这就是原因。

使用标题:'HTTP_X_REQUESTED_WITH' => 'XMLHttpRequest'

或尝试laravel-cors包。