我有以下断言:
$this->call('GET', '/api/v1/ubication/suggest', [
'term' => 'a'
], [], [], ['Accept' => 'application/json']);
$this->assertResponseStatus(422);
调用方法定义如下:
public function call($method, $uri, $parameters = [], $cookies = [], $files = [], $server = [], $content = null) {
}
我将我的标题传递到$ server位置,但我仍然在响应中获得302状态代码(我正在测试请求验证)而不是422,这是我所期望的。
我如何在测试中模拟该标题?
答案 0 :(得分:1)
如果您想使用标题进行GET调用,可以使用:
$this->get('/oauth', [ 'HTTP_X_API_KEY' => 'xxxx' ]);
示例:
$url
由于您要发出GET请求,因此您的参数可以包含在compile files('libs/guava-collections-r03.jar')
。
答案 1 :(得分:0)
您仍然可以使用
$this->call('GET', '/api/v1/ubication/suggest', [
'term' => 'a'
], [], [], ['Accept' => 'application/json']);
之所以不起作用,是因为Laravel在后台过滤掉了所有不以“ HTTP_”开头的标头。
因此,您所需要做的就是将“ Accept”替换为“ HTTP_Accept”
$this->call('GET', '/api/v1/ubication/suggest', [
'term' => 'a'
], [], [], ['HTTP_Accept' => 'application/json']);
```