我有以下功能测试设置
$I = new FunctionalTester($scenario);
$I->wantTo('get a list of users');
$key = $I->amApiAuthenticated();
$I->seeInSession('key');
$I->setHeader('X-API-KEY', $key);
$I->sendAjaxGetRequest('/api/users');
$I->seeResponseCodeIs(200);
但测试失败,因为X-API-KEY
未设置(结果为403),这是从Laravel转储到日志文件的请求:
[2015-05-07 00:26:10] production.INFO: GET /api/users HTTP/1.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept-Language: en-us,en;q=0.5
Host: localhost
User-Agent: Symfony2 BrowserKit
X-Requested-With: XMLHttpRequest
我在这里遗漏了什么吗?真的没有办法像这样设置标题吗?我已经尝试过REST和PhpBrowser ajax方法,但它们都不起作用。
我还尝试将其重命名为HTTP_X_API_KEY
,但仍未显示在请求中。
非常感谢任何帮助!
答案 0 :(得分:0)
抱歉延迟。
我删除了PhpBrowser的依赖项,并包含了REST组件,此外还调整了我抓取标头字段的方式(使用Request::header()
代替传递给控制器方法的FormRequest
。