ajax - 获取 Controller 内部的环境

标签 ajax testing controller symfony phpunit

我有一个 Controller 只能通过 AJAX 访问,我有以下代码。

if (!$request->isXmlHttpRequest()) {
    $response = new Response();
    $response->setContent('AJAX requests only!');
    return $response;
}

当我测试时,这给了我一个问题,因为请求实际上并没有通过 AJAX 发出。这每次都会破坏我的测试。我应该如何解决这个问题?

我的想法:

  1. 我尝试设置服务器 header ,但完全没有成功。
  2. 检查我是否在 Controller 的测试环境中,如果是,则不进行检查。我知道这很脏,但它会起作用。 :-/问题是我不知道如何发现我所处的环境。

还有其他人有任何其他的想法或提示,但我缺少这些想法或提示来使上述其中一项工作吗?

最佳答案

当然在Icode4food的情况下,最好使用Matt的解决方案,但是这里是如何找到当前环境的:

$this->container->getParameter(‘kernel.environment’)

关于ajax - 获取 Controller 内部的环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8272090/

相关文章:

node.js - 如何在 sinon 中获取 stub 的参数并将其中一个参数 + 其他数据用于特定 stub 调用的返回值

iphone - 推送/呈现模态视图 Controller

javascript - 在 AngularJS Controller 上通过 ng-click 调用函数时出错?

ruby-on-rails - Ruby on Rails 在测试(flash 消息和 View )和 I18N 方面的最佳实践

testing - iOS试飞应用安装失败

php - 使用onChange、ajax、php和Mysql提交表单。Dropdown列表的值不会发送到php提交页面

javascript - 使用 AJAX 刷新 div

angularjs - 共享一个 Controller 的 Angular 多条路线

jquery - 如何将整数数组从 asp.net mvc Controller 操作传递回 jquery 函数

jquery - 用$.ajax 提交表单是否矛盾?