1

我正在为控制器编写一些单元测试,其中响应行为略有不同,具体取决于$this->request->is('ajax'). 我一直在查看测试控制器的文档,但似乎找不到模拟通过 AJAX 发出的请求的方法。

有没有办法发送标头,testAction()以便我可以设置 X-Requested-With 标头?

编辑:您可以通过编辑超全局变量来解决这个问题。任何人都有一个不那么hacky的解决方案?

4

1 回答 1

2

一种解决方案是在测试期间手动声明必要的环境变量:

$_ENV['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest';
// Run your AJAX test...
unset($_ENV['HTTP_X_REQUESTED_WITH']);
于 2012-07-10T14:56:15.630 回答