Codeception没有为AJAX

时间:2015-05-06 22:35:08

标签: laravel testing http-headers functional-testing codeception

我有以下功能测试设置

$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,但仍未显示在请求中。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

抱歉延迟。

我删除了PhpBrowser的依赖项,并包含了REST组件,此外还调整了我抓取标头字段的方式(使用Request::header()代替传递给控制器​​方法的FormRequest