我正在为Controller编写一些单元测试,其中响应行为略有不同,具体取决于$this->request->is('ajax')
。我一直在查看documentation for testing controllers,但我似乎无法找到模拟通过AJAX发出的请求的方法。
有没有办法将标头发送到testAction()
,以便我可以设置X-Requested-With标头?
编辑:您可以通过编辑超全局来解决此问题。任何人都有一个不太讨厌的解决方案?
答案 0 :(得分:2)
一种解决方案是在测试期间手动声明必要的环境变量:
$_ENV['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest';
// Run your AJAX test...
unset($_ENV['HTTP_X_REQUESTED_WITH']);